【问题标题】:SCD2 in SSIS always see all records as new onesSSIS 中的 SCD2 始终将所有记录视为新记录
【发布时间】:2018-06-21 12:52:51
【问题描述】:

这是我的问题:我想构建简单的 ETL 流程,在数据流中我从我的暂存模式中获取一些数据并将它们加载到其他地方。我还需要在那里实现 SCD2。所以理论上听起来很简单——但是 SSIS 中的 SCD 组件总是将记录视为新记录,因此每次我执行任务时,即使源数据没有任何变化,它也会将相同的数据加载到我的目标表中。

在 SCD 组件的配置中,我将 BusinessKey 分配给无法更改的列数据,我选择其余维度列作为 HistoricaAtributes,设置开始和结束日期。推断的成员支持未选中。

我使用的是 SSDT 2015,数据库引擎是 SQL Server 2016

这是带有 ETL 的屏幕:

关于如何解决这个问题的任何建议?

【问题讨论】:

  • 您可以在这里得到的最重要的建议是在 SSIS 中抛弃 SCD 组件并用其他东西替换它,例如 this
  • @iamdave 这是一个很好的建议,我将 SCD 方法更改为 LookUp 方法,它可以正常工作。谢谢。

标签: ssis scd2


【解决方案1】:

使用 SCD 高级编辑器(右键单击+显示高级编辑器...)并在组件属性选项卡下检查自定义属性。特别看一下 CurrentRowWhere 和 SqlCommand SCD 组件属性。这些将让您知道为什么具有相同业务密钥的记录被确定为新记录。

【讨论】:

  • 谢谢你。我面临 SCD 组件问题的项目已经成功完成(这是我的第一个 SSIS 项目)。为了处理 SCD2 的事情,我在 T-Sql 中使用了 Lookup 转换和 MERGE 语句。
猜你喜欢
  • 2021-10-14
  • 1970-01-01
  • 2021-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多