1

我在使用源事务表中的标识列或日期时间列从事务系统加载数据仓库时实现了增量检测。当下次需要提取数据时,将上次提取的最大日期时间值用于提取查询的过滤器中,以识别新的或更改的记录。这已经足够好了,除非在同一毫秒内有多个事务。

但是现在我们有了 SQL Server 2008 的变更数据捕获 (CDC),它提供了一个名为 LSN(日志序列号)的新东西,它是长度为 10 的二进制文件。现在我很困惑。应存储哪些数据以用于窗口化,LSN 或日期时间。当然 LSN 消除了在大型事务表中存储额外日期时间值的需要,但这有什么缺点吗?我应该使用哪一个?我觉得,将 LSN 映射到日期时间然后存储日期时间不是一种可靠的方法。你有什么意见?

PS:致非商业智能专业人士,对不起。

4

3 回答 3

1

有关将 CDC 与 SSIS 结合使用的信息,请参阅使用变更数据捕获改进增量负载。

于 2009-07-16T12:46:16.203 回答
0

经过长时间的等待,我在这里看不到任何进一步的答案。我在当前项目中使用 LSN 进行窗口化,我发现它比日期时间值更好,因为它更精确且过程简单。我建议使用 LSN。如果有人不同意,请告诉我...

于 2009-11-05T15:36:25.360 回答
0

如果您设置了 CDC,您会在数据库中添加一个名为 cdc.lsn_time_mapping 的系统表,因此您可以使用其中任何一个。

于 2011-08-12T12:47:36.440 回答