使用python将SQLServer表数据同步至mongoDB库

0
由于业务需求,需要使用python将SQLSERVER数据库表中的数据同步至mongoDB库;
   说明:1.同步数据包含insert、update、delete3个步骤;3个动作都需要满足;
       2.表中有约>1000W条数据,字段相对较多,个别表字段超过500个;
       3.源头表中有时间戳字段,每次可以按时间戳去更新或插入,但是不能删除,暂时还没想到比较好的办法;
       4.一次执行条数太多,故考虑到使用top每次处理多少条然后循环去处理,预计这样操作需要对源头数据进行排序,可能会影      响到效率;
 
求助原因:
  由于我才接触mongoDB,本来是使用kettle去做同步的,但是效率太低,故公司要求用python去实现;但是本人又没搞过Python,实在是搞的头大;来个大神帮忙解决下小弟的问题吧,甚谢!
直接插入的脚本我写出来了,但是没考虑到update、delete ,由于对mongoDB、Python都不熟悉,感觉非常难实现;
下面我把实现的inset脚本贴出来,麻烦大神给修改下;谢谢!
 
 
 
已邀请:
0

桦仔 - SQL Server 专家 2016-04-28 回答

python可以监控sqlserver的update和delete语句??
0

sumerian - 胃口小,不贪心。 2016-05-01 回答

如果只是跑批,很简单,但是如果要同步delete和update,确实不容易哎。
是否可以考虑使用cdc捕获变更,每天定时读取日志来处理呢。
路过学习学习。
0

牟瑞 - 大数据 Hadoop 讲师 Hadoop入门课程地址:http://www.hellobi.com/course/39 有架构师,技术总监,CTO的职位请联系我! 2016-05-02 回答

1.启动CDC,
2.启动Python脚本
  CDC里面是有标志位标识当前的记录是insert还是delete,update的话,是先delete再insert,因此只需要关注两种状态,insert和delete就可以。即使你有1000W+的表数据,在一个周期内,比如10分钟内,增量变更的数据量是很小的。
3.代码编写的过程中,注意mongodb是支持批量操作的,尽量批量操作。
0

间接原因 2016-05-09 回答

经常讨论,CDC不适合我们的业务,理由,开启就把数据库卡死了,也没人去分析原因;权限我这边也没有,也不好研究,折腾呀~!~

要回复问题请先登录注册