初始构建中的历史数据集

时间:2019-02-04 00:21:14

标签: ssis data-warehouse scd

我目前面临的问题是我认为是合乎逻辑的,也许是SSIS的局限性。

我的数据有一组帐户,任何时候该帐户都可以由组织拥有。这种组合控制着我的“帐户”的历史维度

例如

╔════════════╦═══════════════╦════════════════╦════════════╦════════════╦═════════╗
║ AccountKey ║ AccountNumber ║ OrganisationSK ║ VaildFrom  ║ VaildTo    ║ Current ║
╠════════════╬═══════════════╬════════════════╬════════════╬════════════╬═════════╣
║ 1          ║ 2000          ║ 10             ║ 2000-01-01 ║ 2006-02-10 ║ N       ║
╠════════════╬═══════════════╬════════════════╬════════════╬════════════╬═════════╣
║ 2          ║ 2000          ║ 11             ║ 2006-02-10 ║ 2010-06-01 ║ N       ║
╠════════════╬═══════════════╬════════════════╬════════════╬════════════╬═════════╣
║ 3          ║ 2000          ║ 10             ║ 2010-06-01 ║ NULL       ║ Y       ║
╚════════════╩═══════════════╩════════════════╩════════════╩════════════╩═════════╝

这样做很容易,因为我只是让SCD来做,这是我一直在努力的初始负载。

使用SSIS作为我的ETL工具,我是否可以使用内部联接,给我三个记录,通过“ ValidFrom”对它们进行排序,然后将所有三个记录传递给SCD,SSIS可以解决问题?

在这种情况下,人们过去做过什么?

1 个答案:

答案 0 :(得分:0)

您可以使用Merge Transformation在SSIS中使用内部联接。链接如下:

合并联接的要求之一是对两个数据源中联接的至少一列进行排序,以便可以按所需的“ ValidFrom”列对数据进行排序。

然后可以将“合并联接”输出连接到SCD转换。

请注意,合并联接转换是半块转换,因此如果您处理大量数据,则可能会影响ETL性能。