关于暂存表和合并

About staging tables and merge

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

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

关于暂存表和提取过程。

我知道staging area的表需要在流程执行完后删除。

考虑到这一点,想象一下初始完全提取到目标数据库的流程。然后,使用合并 cdc,我需要确定源表中更新的内容。我的疑惑就在这里,我的表在target上了,staging上的数据都被删除了,我怎么知道更新了什么?

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

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

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

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