我在使用源事务表中的标识列或日期时间列从事务系统加载数据仓库时实现了增量检测。当下次需要提取数据时,上次提取的最大日期时间值用于提取查询的过滤器,以识别新的或已更改的记录。这很好,除非在同一毫秒内有多个交易。
但是现在我们使用SQL Server 2008进行了更改数据捕获(CDC),它提供了一个名为LSN(日志序列号)的新东西,它是长度为10的二进制文件。现在我很困惑。应存储哪些数据用于窗口目的,LSN或日期时间。当然LSN消除了在大型事务表中存储额外日期时间值的需要,但这有什么缺点吗?我应该使用哪一个?我觉得,LSN到日期时间的映射然后存储日期时间并不是一种可靠的方法。你有什么看法?
PS:对非BI专业人士,对不起。
答案 0 :(得分:1)
有关将CDC与SSIS结合使用的信息,请参阅Improving Incremental Loads with Change Data Capture。
答案 1 :(得分:0)
经过大量的等待,我在这里看不到任何进一步的答案。我在当前的窗口项目中使用了LSN,我觉得它比日期时间值更好,因为它更精确,过程很简单。我推荐使用LSN。如果有人不同意,请告诉我......
答案 2 :(得分:0)
如果设置了CDC,则会在系统中添加一个名为cdc.lsn_time_mapping的系统表,以便您可以使用。