如何“定时/时时同步 mssql mysql postgresql 数据到统一的表中” - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cxzlhr
V2EX    数据库

如何“定时/时时同步 mssql mysql postgresql 数据到统一的表中”

  •  
  •   cxzlhr 2022-09-27 21:48:02 +08:00 1682 次点击
    这是一个创建于 1109 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现有 mssql mysql postgresql 三种数据库,想将其中的几张表按统一格式存储到统一的数据库( mysql postgresql 未定)的某张表中,

    具体需求:想将门禁记录、考勤记录、消费机记录收集起来做考勤,所以原表中数据只有新增,不存在修改情况

    暂时能想到的方案有 1 、定时循环同步,如 1 小时或 5 分钟,将这间隔的几分钟数据读出来,循环写入新表中 但可能的风险如果同步错误或者网络错误可能这次没成功,数据这五分钟数据就没了, 2 、改进方案 1,通过做唯一标识,每次同步前先查询一次 ID 或者最后一次的时间,将新数据同步过来 不知各位同学有没有更好的办法,或者我面要注意什么的吗?

    9 条回复    2022-09-28 20:57:38 +08:00
    yeqizhang
        1
    yeqizhang  
       2022-09-27 21:56:07 +08:00 via Android
    另外用一张表记录一下对每个表的最后一次的数据的时间,或者 id 是数值的话也存一下
    lithiumii
        2
    lithiumii  
       2022-09-27 22:21:20 +08:00
    如果每个表都有自增 ID 的话最简单了吧,新表加个字段,每次同步前查一下上次同步到哪里了,然后语句里加个 WHERE ID > 就行。都用不上多数据库同步的工具。
    F281M6Dh8DXpD1g2
        3
    F281M6Dh8DXpD1g2  
       2022-09-27 22:21:59 +08:00 via iPhone
    cdc
    dem0ns
        4
    dem0ns  
       2022-09-27 22:23:20 +08:00
    写个脚本一直刷新同步,简单粗暴
    night98
        5
    night98  
       2022-09-27 22:32:18 +08:00
    cancel DataX 随便选一个
    bootvue
        6
    bootvue  
       2022-09-27 22:46:04 +08:00
    datax
    bthulu
        7
    bthulu  
       2022-09-28 08:06:59 +08:00
    这个我做过, 如果是 mysql 的话, 直接模拟 mysql 从服务器订阅 binlog, 解析 binlong 拿到每行记录的操作后数据, 再根据目标库生成对应的增删改语句.
    如果是 oracle 的话, 可以用 oracle 自带的数据挖掘查询 oracle 日志. 不过 oracle 日志中已提交和未提交是混在一起的, 如果指定只查已提交日志, 而某个家伙开了个事务, 然后过了几个小时甚至久也没关闭这个事务, 就会造成 oracle 将这几个小时内的所有日志都加载到内存中然后就爆炸了. 要么就不指定查提交还是不提交日志, 一股脑查出来推到消息队列, 再从消息队列里碰到一个提交点就往前回溯把相关数据捞出来. 总之比 mysql 复杂很多倍.
    changdy
        8
    changdy  
       2022-09-28 08:18:03 +08:00
    cdc ,
    flink cdc
    datax 当然也可以 ,不过要做好 时间戳
    cxzlhr
        9
    cxzlhr  
    OP
       2022-09-28 20:57:38 +08:00
    确实如各位所说,好像这东西确实不需要太复杂的东西,暴力去读取,现在考勤使用 postgresql 准备使用 jsonb 来把原始记录存一下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2684 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 13:36 PVG 21:36 LAX 06:36 JFK 09:36
    Do have faith in what you're doing.
    ubao 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