BI多维建模:如何将度量转换为维度?

时间:2014-06-17 15:52:42

标签: data-modeling data-warehouse business-intelligence dimensional-modeling

所以这就是我打算做的事情:假设我们有一个典型的销售事实表,其中包含典型的列:

Date, SalesRep, Product, Region, Units, Amount

现在,很简单,我可以总结金额并将其与区域对应:

Region      Sum of Revenue
------      --------------
North       56,234 $
South       48,788 $
East        38,787 $
West        15,334 $

但是,如果我想以另一种方式拥有它,就像这样:

Revenue range    Region
-------------    ------
>50,000          North
>25,000          South
                 East
>10,000          West

这意味着将量化事实视为一个维度,反之亦然,对吧?但我怎样才能将措施转化为维度?

欢迎任何向正确方向努力。

1 个答案:

答案 0 :(得分:1)

动态值绑定:

http://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/dynamic-value-banding/

  

动态值绑定报告被组织为一系列报告行   标题,定义一组渐进的不同大小的范围   目标数字事实。例如,a中的常见值绑定报告   银行有很多行,带有标签,例如“余额从0到10美元”,   “从10.01美元到25美元之间的平衡”等等。

     

这种报道是   动态,因为特定的行标题是在查询时定义的,而不是   在ETL处理期间。行定义可以用a实现   通过连接的小值绑定维度表   大于/小于连接到事实表,或者定义可以   仅存在于SQL CASE语句中。

     

值绑定维度   方法可能表现更好,特别是在柱状中   数据库,因为CASE语句方法涉及差不多   事实表的无约束关系扫描。

条带尺寸表:

ID | RANGE_SET    | RANGE_NAME | RANGE_MIN    | RANGE_MAX
---|--------------|------------|--------------|---------------
1  | THREE_RANGES | >50,000    |  50,000.01 $ | 9,999,999.00 $
2  | THREE_RANGES | >25,000    |  25,000.01 $ |    50,000.00 $
3  | THREE_RANGES | >10,000    |  10,000.01 $ |    25,000.00 $
10 | BIG_SMALL    | Small      |       0.00 $ |   100,000.00 $
11 | BIG_SMALL    | Big        | 100.000.01 $ | 9,999,999.00 $

RANGE_SET允许在同一维度表中存储几组范围,并用于对定义的范围进行分组。

聚合事实表:

如果您正在处理大型事实表且动态方法资源过于密集,则可以将数据加载到汇总事实表并使用收入总和获取适当的绑定密钥。

REGION | BANDING_ID | SUM_OF_REVENUE
-------|------------|---------------
North  | 1          |       56,234 $
South  | 2          |       48,788 $
East   | 2          |       38,787 $
West   | 3          |       15,334 $