Data Flow ->> CDC Control Task, CDC Source, CDC Splitter
2015-06-14 22:04
267 查看
CDC Control Task可以从控制CDC数据同步,比如初始化加载、LSN范围的管理。它可以代替另一种做法,就是通过调用一批CDC函数来完成同样的事情。从SSIS的角度来完成,事情编程简单,和另外两个空间配合起来(CDC Source,和CDC Splitter),仅需配置一些控件参数便可以完成整个数据抽取过程。
CDC Source从启用了CDC的数据表中查询数据
CDC Splitter和Conditional Split组件功能相似。它生成三个数据流分支:Inserts, Updates, and Deletions
加载CDC数据一般来讲需要两个包,一个做initial load,另一个做incremental load。
说到CDC Control Task,需要说明CDC Control Operation属性有4个选项:
1)Mark Initial Load Start: initial load开始时获取start LSN和更新CDC_State变量值
2)Mark Initial Load End:initial load结束时获取start LSN和更新CDC_State变量值
3)Mark CDC Start: 记录CDC范围开始值
4)Get Processing Range: 获取增量加载时的LSN范围值
5)Mark Processed Range:完成增量加载后的LSN范围值
不过经过测试,这里好像有个SSIS的Bug。在按照下面的博客的做法做之后发现运行过程报错
http://www.mattmasson.com/2011/12/cdc-in-ssis-for-sql-server-2012-2/?utm_source=rss&utm_medium=rss&utm_campaign=cdc-in-ssis-for-sql-server-2012-2
报错信息如:Error: "No CDC End (CE) in state variable User::CDC_State.
Google了一下发现很多人和我遇到同样的问题。
搞不懂为什么不行。在MSDN上找到一个相关连接,
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/f01a3b64-a0e5-4cb7-880a-e6a54c2875ae/cdc-ssis-2012-cdc-taskcdc-sourcecdc-splitter?forum=sqlintegrationservices
而即便我按里面的ANSWER去做,把CDC Control Operation设置为Get Processing Range,第一遍运行还是报错
第二遍运行才成功
这里有人report了这个问题给微软,不过问题似乎没有得到解答。
https://connect.microsoft.com/SQLServer/feedback/details/743536/cdc-source-in-ssis-not-working-with-initial-load
这里我还是觉得这个东西不太稳定,不如用CDC函数来组合编写CDC加载数据的逻辑
CDC Source从启用了CDC的数据表中查询数据
CDC Splitter和Conditional Split组件功能相似。它生成三个数据流分支:Inserts, Updates, and Deletions
加载CDC数据一般来讲需要两个包,一个做initial load,另一个做incremental load。
说到CDC Control Task,需要说明CDC Control Operation属性有4个选项:
1)Mark Initial Load Start: initial load开始时获取start LSN和更新CDC_State变量值
2)Mark Initial Load End:initial load结束时获取start LSN和更新CDC_State变量值
3)Mark CDC Start: 记录CDC范围开始值
4)Get Processing Range: 获取增量加载时的LSN范围值
5)Mark Processed Range:完成增量加载后的LSN范围值
不过经过测试,这里好像有个SSIS的Bug。在按照下面的博客的做法做之后发现运行过程报错
http://www.mattmasson.com/2011/12/cdc-in-ssis-for-sql-server-2012-2/?utm_source=rss&utm_medium=rss&utm_campaign=cdc-in-ssis-for-sql-server-2012-2
报错信息如:Error: "No CDC End (CE) in state variable User::CDC_State.
Google了一下发现很多人和我遇到同样的问题。
搞不懂为什么不行。在MSDN上找到一个相关连接,
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/f01a3b64-a0e5-4cb7-880a-e6a54c2875ae/cdc-ssis-2012-cdc-taskcdc-sourcecdc-splitter?forum=sqlintegrationservices
而即便我按里面的ANSWER去做,把CDC Control Operation设置为Get Processing Range,第一遍运行还是报错
第二遍运行才成功
这里有人report了这个问题给微软,不过问题似乎没有得到解答。
https://connect.microsoft.com/SQLServer/feedback/details/743536/cdc-source-in-ssis-not-working-with-initial-load
这里我还是觉得这个东西不太稳定,不如用CDC函数来组合编写CDC加载数据的逻辑
相关文章推荐
- matlab workspace中的图标的含义及给数组和cell array赋值
- Android的一些常用命令提示符(cmd)指令
- 第一篇 学习OpenCV之图像显示
- HDU Repair the Wall (贪心)
- Android Studio升级时遇到的问题。
- JMS and ActiveMQ first lesson(转)
- 第一篇 学习OpenCV之图像显示
- 牛腩新闻发布系统---真分页功能
- eclipse上配置c语言开发环境
- Vi使用
- 《Java程序设计》第二次作业:MySQL数据库及Java操作MySQL数据库
- js 实现拖拽效果
- MyBatis3整合Spring3、SpringMVC3
- Android开发UI之手动显示和隐藏软键盘
- 一次SQL Performance Analyzer的使用过程
- 缓存服务器设计与实现(番外篇)
- 机房合作---外观层的再次理解
- 为什么你总是活在朋友圈?
- Java学习笔记(七):request.getParameterMap()的使用
- 安装memcache等dll文件时遇到的问题。