V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Buffer2Disk
V2EX  ›  程序员

关于对另一个数据库的数据抓取,如何保持数据一致性

  •  
  •   Buffer2Disk · 2016-11-08 10:55:37 +08:00 · 1735 次点击
    这是一个创建于 2738 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,现在有这么个需求,对另一个数据库的订单数据抓取到本地数据库,每半小时抓取一次。采取的是增量抓取的方式,就是抓取这半个小时的数据。现在的问题是,如何保证数据的一致性,比如抓取过程中,产生了订单,这样就可能会漏掉了该订单

    4 条回复    2016-11-09 01:06:19 +08:00
    benatsh
        1
    benatsh  
       2016-11-08 11:23:58 +08:00
    自己抓取开始的时候,记住抓取动作开始的时间,因此抓取的记录就是开始时间往前推半小时产生的记录,数据库系统有自己的时间戳,这个不难的吧。落库的时候再做主键比对,避免重复抓取
    Mirana
        2
    Mirana  
       2016-11-08 18:46:33 +08:00
    订单 id 不是自增的?
    qile1
        3
    qile1  
       2016-11-08 23:45:10 +08:00 via Android
    代码可以参考一下不,一种是在源数据表加同步字段,更新,另一种我感觉可以时间排序,然后取最后时间为下次同步时候的开始时间,设置和更新频率不能太快,另外 oracle 和 mssql 都有表快速复制语句,如果不是两个不同数据库,那个最快
    crytis
        4
    crytis  
       2016-11-09 01:06:19 +08:00 via iPhone
    解析 binlog
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1017 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:56 · PVG 04:56 · LAX 13:56 · JFK 16:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.