Ssis 关于暂存表和合并

Ssis 关于暂存表和合并,ssis,business-intelligence,staging,Ssis,Business Intelligence,Staging,我是BI领域的新手,有些概念对我来说似乎被误解了 我正在阅读一些关于这方面的文章和书籍,它们充满了图形和流程,并没有在实践中讲述太多的过程 关于暂存表和提取过程 我知道执行流后需要删除暂存区中的表。 考虑到这一点,想象一个对目标数据库进行初始完全提取的流。然后,使用合并cdc,我需要识别源表中更新的内容。我的疑问是,既然我的表位于目标上,并且转移数据已被删除,我如何知道更新了什么 我需要将目标表的数据带到暂存区域,然后进行合并?更改数据捕获(CDC)通常在源系统上完成,可以使用显式的change

我是BI领域的新手,有些概念对我来说似乎被误解了

我正在阅读一些关于这方面的文章和书籍,它们充满了图形和流程,并没有在实践中讲述太多的过程

关于暂存表和提取过程

我知道执行流后需要删除暂存区中的表。

考虑到这一点,想象一个对目标数据库进行初始完全提取的流。然后,使用合并cdc,我需要识别源表中更新的内容。我的疑问是,既然我的表位于目标上,并且转移数据已被删除,我如何知道更新了什么

我需要将目标表的数据带到暂存区域,然后进行合并?

更改数据捕获(CDC)通常在源系统上完成,可以使用显式的
changed
字段(简单的布尔值或时间戳),也可以由底层数据库管理系统自动完成

如果您的数据中有一个时间戳字段,那么您首先将初始加载到staging,记录检索到的最大时间戳,然后在下一次更新时,您只检索时间戳大于记录值的记录。如果源系统上没有真正的CDC功能,这是首选方法


使用布尔字段更为棘手,因为对源系统的所有插入和更新都必须将其设置为
true
,提取后,您必须首先将其重置为
false

,感谢您的快速回复。所以,事实上,在我的暂存区域中,我需要一个包含先前提取的数据的表,以便将数据与来自源的新数据进行比较?我想我需要清理台上的所有数据。。或者,正如我所说的,我需要在staging上放上我在target上拥有的数据来进行比较?是的,您可以在staging上有一些簿记和配置数据,但最好是清除从源代码加载的所有表。您不需要将所有数据都放在staging中,只需要从源代码检索到的最高时间戳。您不需要对所有数据都这样做,只需要对facts等最大的表这样做。有帮助吗?