B9hkc
V2EX  ›  数据库

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

  •  
  •   B9hkc · Nov 23, 2024 · 3679 views
    This topic created in 714 days ago, the information mentioned may be changed or developed.

    问题背景

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

    当前使用方案

    • xxl_job + datax

    遇到的问题

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

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

    18 replies  •  2024-11-25 12:46:16 +08:00
    BugCry
    BugCry
    Nov 23, 2024 via Android
    1
    试试 kettle
    1024potato
    1024potato
    Nov 23, 2024
    2
    flink CDC
    ljh2057
    ljh2057
    Nov 23, 2024
    3
    Apache SeaTunnel
    COW
    COW
    Nov 23, 2024 via Android❤️1
    4
    定时任务+自定义 datax ,这不就是一个 ETL 平台的功能吗,你们应该有这种 ETL 平台吧,直接找数仓的同事公共讨论方案从数据流和业务上解决是不是会更好。
    l1ch40
    l1ch40
    Nov 23, 2024
    5
    tapdata
    LittleControl
    LittleControl
    Nov 23, 2024 via iPhone
    6
    4 楼给出答案了,应该找数仓的同事讨论一下能否复用他们 ETL 平台或能力,肯定这方面他们经验更丰富一些
    9dP06m83vIV00l72
    9dP06m83vIV00l72
    Nov 23, 2024
    7
    强势关注,袋鼠把你的需求案例纳入测试案例了,将在升级开发中作为验收案例;
    B9hkc
    B9hkc
    OP
    Nov 24, 2024
    9
    @BugCry 这个也有在用,目前也是 xxljob+kettle 也做得有
    B9hkc
    B9hkc
    OP
    Nov 24, 2024
    10
    @1024potato 好的,我了解一下
    B9hkc
    B9hkc
    OP
    Nov 24, 2024
    11
    @ljh2057 谢谢,我了解一下
    B9hkc
    B9hkc
    OP
    Nov 24, 2024
    12
    @COW 谢谢大佬,我去找相关的部门同事交流一下
    B9hkc
    B9hkc
    OP
    Nov 24, 2024
    13
    @l1ch40 没用过,我了解一下,谢谢
    B9hkc
    B9hkc
    OP
    Nov 24, 2024
    14
    B9hkc
    B9hkc
    OP
    Nov 24, 2024
    15
    @andytao #8 关注一下,目前的同步功能是打勾的数据库之间都支持数据同步吗?还是只支持同源数据库的同步呀
    edwardzcn98
    edwardzcn98
    Nov 24, 2024
    16
    你问的全量增量捕获稳定性是做变更数据捕获工具测试比较麻烦的事,开源方案 2l 提到了 Flink CDC ,如果觉得不够定制或者需要改可以直接用下面封装的 Debezium
    9dP06m83vIV00l72
    9dP06m83vIV00l72
    Nov 24, 2024
    17
    @B9hkc 目前是支持异构的,只是还没有大规模验证的案例,接下来准备从内部视角对它进行升级;
    wnarutou
    wnarutou
    Nov 25, 2024 via Android
    18
    问题一:看看日志里面真正执行的 sql 是否加了其他分片条件
    问题二:写入插件应该用 replace 模式
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1432 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 05:56 · PVG 13:56 · LAX 21:56 · JFK 00:56
    ♥ Do have faith in what you're doing.