我正在使用SSIS CDC组件进行概念验证。
对于初始加载:到目前为止我得到的是
步骤1:CDC控制任务与CDC控制操作为:标记初始加载开始 步骤2:数据流将所有源记录加载到目标 步骤3:使用CDC控制的CDC控制任务操作:标记初始加载结束(步骤1中CDC的其余设置)
当我第一次运行时...所有数据加载正常。 如果运行相同...而不是选择任何记录(源中没有变化)......它会重新加载所有记录......重复。
这不会检查在步骤1中创建的CDC状态表。
任何人都可以指出我的好样本或教程会很棒。
答案 0 :(得分:1)
是的我得到了..我做错了是我创建了一个包来完成所有初始加载和增量加载。还有一件事是我在初始加载后没有为'Mark CDC Start'创建一个步骤。现在我有一个包完成初始加载,然后Marks CDC启动。然后从那里开始我的第二个包开始增量加载。
答案 1 :(得分:0)
首先,您需要了解CDC控制任务仅处理LSN。它从启用CDC的数据库中读取它,并将其保存到指定的变量,以便后续步骤可以使用它。可选的它可以将值保存到数据库表中,然后后续的包执行可以使用它。
步骤1和步骤3基本上分别将一个LSB编号置于CDC状态,执行这些步骤时的最大LSB值。当初始负载正在执行时,可能同时发生其他活动,这两个步骤为我们提供了涵盖初始加载周期的LSB范围。
初始加载后的下一次运行应该是增量加载,它在数据流中使用 CDC源来检索初始加载期间发生的事务。
来自Matt Masson的一篇好文章here应该会让你了解CDC的见解。