SQL Server怎么配置cdc进行ETL


这篇文章给大家分享的是有关SQL Server怎么配置cdc进行ETL的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。企业核心业务系统oltp的数据需要通过ETL同步到数据仓库,原始的ETL流程通过定制化从SQL Server中进行数据抽取,经过生产环境的监控,发现ETL过程的query会对生产系统造成额外负载。于是制定了通过cdc进行增量数据同步的方案:方案选型中比对了SQL server的trigger,CT,CDC, temporary table各种方式,选型对比如下:TriggerCTCDCTemporal tableSync waySynchronousSynchronousAsynchronousSynchronousInternal workHeavy than indexSame as indexCall

sp_replcmds to collect from tlog no direct workload.Table part in transactionYesYesNoYesHistorical Data retentionManual controlNoYesYes通过表格对比可以看到,cdc通过异步非侵入式进行增量数据捕获,使用了sp_replcmds,这个过程和sql server的transactional replication中的log reader agent是相同的,缺点就是会对占用原始database的datafile和logfile,造成数据增长。在cdc的使用过程中,比较重要的是将cdc数据置于单独的filegroup内,这样,在数据管理恢复和性能上会减少对于原始oltp的影响。具体过程如下:在db级别启用cdc时需要先将db的默认filegroup改成cdc,这样cdc对应的元数据信息,例如经常变化的表cdc.lsn_time_mapping可以存放到单独的filegroup中对于表的cdc数据使用@fileGroup_Name参数指定filegroup–enable cdc filegroupUSE DB1ALTER DATABASE DB1 ADD FILEGROUP CDCGOALTER DATABASE DB1 ADD FILE(NAME=’CDC’,FILENAME=’D:DATADB_CDC1.ndf’,SIZE = 1024MB,MAXSIZE = unlimited,FILEGROWTH=256MB)TO FILEGROUP CDCGOUSE DB1GOALTER DATABASE DB1 MODIFY FILEGROUP [CDC] DEFAULTGOEXEC sys.sp_cdc_enable_dbGOALTER DAT开发云主机域名ABASE DB1 MODIFY FILEGROUP [DATA] DEFAULTgoEXEC sys.sp_cdc_enable_table @source_schema = N’dbo’,@source_name = ‘T1′,@role_name = N’cdc_Admin’,@fileGroup_Name = N’CDC’CDC建立后有capture job和clean job,当cdc的数据增量非常大的时候,需要适当调整job的参数:
EXEC sys.sp_cdc_change_job@job_type = ‘capture’,@maxtrans = 5000 –每个扫描循环可以处理的最多事务数,@maxscans = 100 –为了从日志中提取所有行而要执行的最大扫描循环次数,@continuous = 1 –连续运行最多处理(max_trans * max_scans)个事务,@pollinginterval = 1感谢各位的阅读!关于“SQL Server怎么配置cdc进行ETL”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

相关推荐: 使用Notepad++列模式的示例

这篇文章给大家分享的是有关使用Notepad++列模式的示例的内容。小编觉得挺实用的,因此分享给开发云主机域名大家做个参考,一起跟随小编过来看看吧。用法先按住alt,选中列,再上下左右拖动编辑即可;再次点击左键即可取消。感谢各位的阅读!关于“使用Notepad…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 05/13 15:56
下一篇 05/13 15:56