【问题标题】:SSIS 2012 - setting slowly changing dimension UpdateChangingAttributeHistory to trueSSIS 2012 - 将渐变维度 UpdateChangingAttributeHistory 设置为 true
【发布时间】:2014-10-29 09:42:18
【问题描述】:

使用 SCD 任务向导,我无法设置 UpdateChangingAttributeHistory 属性,它默认为 false。我可以使用高级编辑器将其设置为 true,但这不会更新生成的流程,因此行为没有改变。我需要做什么来触发 SSIS 重新生成流而不重新运行向导(它将 UpdateChangingAttributeHistory 设置回 false)?

我的目标是拥有一个类型 2 的 scd,它可以在发生更改时更新事实表。

【问题讨论】:

  • 在渐变维度属性窗口中,您没有“UpdateChangingAttributeHistory”属性吗?是什么阻止您将其从假变为真。可能是我不明白你的问题。
  • 确实我能做到!但这似乎并没有改变 ssis 的行为。我可能误解了此属性的作用,但在启用此属性运行后,我看不到事实表的更改。
  • 我一直在为 SSIS SCD 任务而苦苦挣扎。最近,我读到 SCD 的性能最差。现在我们使用一组 LookUp 任务,OLEDB 任务来实现 SCD 功能。只是添加,而不是解决您的问题。

标签: sql-server ssis sql-server-2012 ssis-2012 scd


【解决方案1】:

我无法解释为什么 UpdateChangingAttributeHistory 复选框在向导中显示为灰色 - 这听起来很糟糕。但我可以告诉你它的作用。如果这是 False(默认值),它会将“更改属性更新输出”的 OLE DB 命令的 WHERE 子句更改为如下内容:

... WHERE [SomeKeyColumn] = ? AND [SCD_EndDate] IS NULL

如果您不使用日期,它将类似于 [CurrentRowFlag] = 'Y'

如果将该属性设置为 true,它将删除 WHERE 子句的该部分,以便所有具有类型 1 更改的行都将被更新,包括当前的和历史的。就是这样。这就是为什么如果您不重新生成组件,则该标志无效,因为 OLE DB 命令没有更改。

因此,您可以在更改属性更新输出中手动进行更改,但如果将来重新生成 SCD 组件,这些更改可能会丢失。
正如 cmets 中所指出的,值得考虑使用其他组件创建此功能以提高性能和可维护性,特别是如果它一开始就很有趣。

【讨论】:

  • 对我来说听起来很合理!我想我误解了结果会是什么:)
猜你喜欢
  • 1970-01-01
  • 2017-09-26
  • 1970-01-01
  • 2015-12-28
  • 2020-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多