【问题标题】:OLAP cube designing: runtime generated measuresOLAP 多维数据集设计:运行时生成的度量
【发布时间】:2021-03-04 02:13:49
【问题描述】:

我面临一个我不完全确定可以通过纯 OLAP 设计来实现的要求(无论如何,我的 OLAP 知识太少了)。

我有一个维度表,例如

DROP TABLE IF EXISTS TMP_DEBUG_OLAP_44_BUILDING;
CREATE TABLE TMP_DEBUG_OLAP_44_BUILDING AS
SELECT 1 AS building_id,'Building 1' AS building_name
UNION ALL
SELECT 2 AS building_id,'Building 2' AS building_name
;

和一个表事实(fact-1),例如

DROP TABLE IF EXISTS TMP_DEBUG_OLAP_44_FACTS;
CREATE TABLE TMP_DEBUG_OLAP_44_FACTS AS
SELECT 1 AS building_id,10 AS budget_amount,11 AS estimate_amount
UNION ALL
SELECT 2 AS building_id,12 AS budget_amount,13 AS estimate_amount
;

和一个因子转换事实表(fact-2),例如

DROP TABLE IF EXISTS TMP_DEBUG_OLAP_44_FACT_FACTORS;
CREATE TABLE TMP_DEBUG_OLAP_44_FACT_FACTORS AS
SELECT 'DK' AS country_id,1.0 AS FACTOR
UNION ALL
SELECT 'MX' AS country_id,1.5 AS FACTOR
;

我被要求为每个元组 [Measures].[Budget amount]_vs_country 生成一个度量,因此它实际上为每个元组添加了一个度量,将 [Measures].[Budget amount] * factor_value 相乘.

示例:fact-table-1 第一行是 building_id=1,我需要 3 个度量:[Measures].[Budget amount]、budget-amount1.0(DK) 和 budget-amount1.5 (墨西哥)。

现在,如果将另一个国家/地区添加到表中,则会有一个新元组,因此是一个新度量。

有什么方法可以在不修改多维数据集的情况下实现吗?

感谢和问候!

【问题讨论】:

  • 或者,如果有一种方法可以传递输入参数以获取单个度量,并将因子应用于所选国家/地区就足够了。然而,我的探索平台是JPivot,它缺乏用户输入的能力。

标签: design-patterns olap mondrian


【解决方案1】:

看起来您的预算度量是一个半加法度量,因为它在建筑维度上是相加的,而不是在国家维度上。半加法测量通常使用计算测量来解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多