求不同数据库之间的数据同步方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
B9hkc
V2EX    数据库

求不同数据库之间的数据同步方案

  •  
  •   B9hkc 2024-11-23 14:35:18 +08:00 2768 次点击
    这是一个创建于 372 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题背景

    • 可能会用到的部分数据库:
      • PostgreSQL -> Gbase
      • PostgreSQL -> PostgreSQL
      • MySQL -> PostgreSQL
      • Gaussdb -> Gbas
    • 数据量:每张表 1000 万~10 亿,部分表数据量在 25 亿+以上的量级

    当前使用方案

    • xxl_job + datax

    遇到的问题

    • 稳定性:
      • 部分表做增量任务不会结束。如某张表有 10 亿的数据量,之前已经做过全量同步的任务了,现在做增量同步,仅同步最近三天的数据,结果读插件一直在读,但最近三天可能没有数据,然后 datax 的读插件一直读出 0 条数据,任务一直不会结束。(不是读插件查询 SQL 的问题,将查询 SQL 取出单独执行可在较短时间内得出结果)
      • 重复插入导致任务失败。源表通过主键保证了每条数据的唯一性,但在 datax 同步时,源表只有唯一的一条数据,目标表也有相同的主键约束,出现该条数据会插入两次,插入第二次时因为数据已经插入过,违背主键约束导致任务直接失败。
      • ......

    以上问题也不是每张表都有,大部分表也都能成功,但是部分表就是遇到这些问题。我的需求需要保证数据同步必须稳定成功,每月做一次全量同步,每天做一次增量同步。请教一下各位大神该问题还有哪些方案可用(开源或商业付费都可以),或者我遇到的问题可能出现在什么地方。谢谢各位大佬

    18 条回复    2024-11-25 12:46:16 +08:00
    BugCry
        1
    BugCry  
       2024-11-23 14:41:48 +08:00 via Android
    试试 kettle
    1024potato
        2
    1024potato  
       2024-11-23 14:46:42 +08:00
    flink CDC
    ljh2057
        3
    ljh2057  
       2024-11-23 14:54:41 +08:00
    Apache SeaTunnel
    COW
        4
    COW  
       2024-11-23 15:54:11 +08:00 via Android   1
    定时任务+自定义 datax ,这不就是一个 ETL 平台的功能吗,你们应该有这种 ETL 平台吧,直接找数仓的同事公共讨论方案从数据流和业务上解决是不是会更好。
    l1ch40
        5
    l1ch40  
       2024-11-23 16:40:00 +08:00
    tapdata
    LittleControl
        6
    LittleControl  
       2024-11-23 17:04:32 +08:00 via iPhone
    4 楼给出答案了,应该找数仓的同事讨论一下能否复用他们 ETL 平台或能力,肯定这方面他们经验更丰富一些
    9dP06m83vIV00l72
        7
    9dP06m83vIV00l72  
       2024-11-23 22:50:56 +08:00
    强势关注,袋鼠把你的需求案例纳入测试案例了,将在升级开发中作为验收案例;
    9dP06m83vIV00l72
        8
    9dP06m83vIV00l72  
       2024-11-23 22:54:51 +08:00
    B9hkc
        9
    B9hkc  
    OP
       2024-11-24 08:50:13 +08:00
    @BugCry 这个也有在用,目前也是 xxljob+kettle 也做得有
    B9hkc
        10
    B9hkc  
    OP
       2024-11-24 08:50:32 +08:00
    @1024potato 好的,我了解一下
    B9hkc
        11
    B9hkc  
    OP
       2024-11-24 08:50:47 +08:00
    @ljh2057 谢谢,我了解一下
    B9hkc
        12
    B9hkc  
    OP
       2024-11-24 08:51:30 +08:00
    @COW 谢谢大佬,我去找相关的部门同事交流一下
    B9hkc
        13
    B9hkc  
    OP
       2024-11-24 08:52:12 +08:00
    @l1ch40 没用过,我了解一下,谢谢
    B9hkc
        14
    B9hkc  
    OP
       2024-11-24 08:52:30 +08:00
    B9hkc
        15
    B9hkc  
    OP
       2024-11-24 09:00:35 +08:00
    @andytao #8 关注一下,目前的同步功能是打勾的数据库之间都支持数据同步吗?还是只支持同源数据库的同步呀
    edwardzcn98
        16
    edwardzcn98  
       2024-11-24 13:36:21 +08:00
    你问的全量增量捕获稳定性是做变更数据捕获工具测试比较麻烦的事,开源方案 2l 提到了 Flink CDC ,如果觉得不够定制或者需要改可以直接用下面封装的 Debezium
    9dP06m83vIV00l72
        17
    9dP06m83vIV00l72  
       2024-11-24 14:59:28 +08:00
    @B9hkc 目前是支持异构的,只是还没有大规模验证的案例,接下来准备从内部视角对它进行升级;
    wnarutou
        18
    wnarutou  
       2024-11-25 12:46:16 +08:00 via Android
    问题一:看看日志里面真正执行的 sql 是否加了其他分片条件
    问题二:写入插件应该用 replace 模式
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1275 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 16:43 PVG 00:43 LAX 08:43 JFK 11:43
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86