SSIS 代理键增量
SSIS Surrogate Key incrementation
我正在使用 SSIS 为具有代理键 (sg) 的数据仓库创建星型模式。
我的流程是这样的:
找到最大 sg(使用 SQL)
在数据流中:数据源-> 将 +1 添加到最大 sg 的 c# 脚本 -> 写入目标。
现在,使用固定尺寸它可以毫无问题地工作。每个添加的行都会获得顺序 sg。
然而,当我使用缓慢变化的维度并历史更新一行时,我得到以下信息:
sg_key | name | city | current_row
1 | a | X | true
2 | b | Y | true
3 | c | Z | false
4 | d | H | true
7 | c | T | true
现在,如果我错了请纠正我,但我一直认为 SSIS 在所有流程任务中一次推送一行,但看起来它首先为所有行生成所有 sg_keys然后通过流发送更新的行。
我对 SSIS 工作方式的理解有误吗?我该如何解决?
干杯,
马克.
如果您使用 SQL 服务器作为目标,为什么不使用 IDENTITY 列? (而不是 C# 脚本)
https://msdn.microsoft.com/en-us/library/ms186775.aspx
当您插入新行时,Identity 会自动增加您的列。如果您不更新此列,该值将不会更改。
阿尔诺
我正在使用 SSIS 为具有代理键 (sg) 的数据仓库创建星型模式。
我的流程是这样的:
找到最大 sg(使用 SQL)
在数据流中:数据源-> 将 +1 添加到最大 sg 的 c# 脚本 -> 写入目标。
现在,使用固定尺寸它可以毫无问题地工作。每个添加的行都会获得顺序 sg。
然而,当我使用缓慢变化的维度并历史更新一行时,我得到以下信息:
sg_key | name | city | current_row
1 | a | X | true
2 | b | Y | true
3 | c | Z | false
4 | d | H | true
7 | c | T | true
现在,如果我错了请纠正我,但我一直认为 SSIS 在所有流程任务中一次推送一行,但看起来它首先为所有行生成所有 sg_keys然后通过流发送更新的行。
我对 SSIS 工作方式的理解有误吗?我该如何解决?
干杯, 马克.
如果您使用 SQL 服务器作为目标,为什么不使用 IDENTITY 列? (而不是 C# 脚本)
https://msdn.microsoft.com/en-us/library/ms186775.aspx
当您插入新行时,Identity 会自动增加您的列。如果您不更新此列,该值将不会更改。
阿尔诺