1

我目前面临的问题是我认为一个合乎逻辑的问题,也许是 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 会解决问题吗?

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

4

1 回答 1

0

您可以使用合并转换在 SSIS 中使用内部连接。下方链接:

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

然后,您可以将 Merge Join 输出连接到您的 SCD 转换。

请注意,Merge Join 转换是半阻塞转换,因此如果您处理大量数据,您的 ETL 性能可能会受到阻碍。

于 2019-02-04T07:24:27.310 回答