首页 > 解决方案 > SCD 类型 2 维度 - 如何在单个类别下获取多个值版本

问题描述

对于具有 SCD 类型 2 并且仍然能够按最新值对事实进行分组的最佳实践是什么?如何在 Power BI 端忽略 COUNTRY 更改(马其顿和 N. Macedonia 应该是同一类别)按国家/地区分组?

假设在下面的示例中,我想保留 POPULATION 更改的历史记录,但仍然能够通过 COUNTRY 忽略更改对指标进行分组。

例子

方面:

SR  |  COUNTRY (SCD1) | POPULATION (SCD2) | START_DATE | END_DATE
1        Macedonia         100,000        | 2001-09-03 | 2015-07-01
2        Macedonia         110,000        | 2015-07-01 | 2019-07-01
3        N. Macedonia      110,000        | 2019-07-01 | NULL

事实表:

SR | METRIC_1 | METRIC_2
1  | 10       | 100   
1  | 20       | 110   
2  | 30       | 120
3  | 40       | 130   

现在我想得到以下报告:

COUNTRY   | SUM(METRIC_1)
Macedonia   100              # SR key 3 was taken into account despite COUNTRY value is different!

解决方法

我们找到的解决方案 - 将某些列作为 SCD 2 处理,但在 ETL 转换期间覆盖其他列(将它们作为 SCD 1 处理)

SR  |  COUNTRY (SCD1) | POPULATION (SCD2)
1        N. Macedonia      100,000           # old COUNTRY value was overwritten
2        N. Macedonia      110,000           # old COUNTRY value was overwritten 
3        N. Macedonia      120,000

这是处理这种情况的常见做法吗?还是有更好的方法?也许添加另一个组列顶部维度?

标签: database-designarchitecturepowerbidata-warehousedimensional-modeling

解决方案


推荐阅读