请教各位大佬,千万级的没有时间戳的数据表怎么做数据同步,一些细节:  
1 、一共有几百张表,没有办法要求源数据添加时间戳;  
2 、数据量很大无法做全量比对;  
3 、表里有唯一标识列,但是没有最后修改时间列,无法增量同步;  
4 、业务会在原表的记录上直接更新数据;
举报· 125 次点击
登录 注册 站外分享
12 条回复  
perfectlife 小成 2024-8-14 14:48:18
数据同步一板也不是根据表中时间戳字段的吧,比如 mysql 用 binlog 日志,舍得花钱就 dts
NoobNoob030 小成 2024-8-14 14:50:26
如果是 mysql 可以考虑用 binlog 同步
Plutooo 小成 2024-8-14 15:45:29
CDC ,Debezium 、Flink CDC
liuzhedash 小成 2024-8-14 15:46:54
思路 1:上一套类似 Oracle GoldenGate 的系统
思路 2:给表加触发器和配套的日志表,记录那些记录被更新了,然后写一套代码去同步

总得说要么去读数据库的存储日志,要么自己维护一套日志表来解决原始表里没有更新时间的问题
bootvue 初学 2024-8-14 16:04:31
cloud canal 可以免费用
sagaxu 初学 2024-8-14 16:18:05
才千万级,每秒处理 10 万,几分钟就比对完了。

如果实时性要求高,那就订阅更新行为,常用的有
1. 触发器
2. 中间件
3. binlog
4. 更新通知,如 pgsql 的 listen-notify
yinmin 小成 2024-8-14 16:40:07
我以前用过 2 种方式,都是生产环境用的,供参考:

1. 可以使用触发器 trigger ,将 insert 、update 、delete 的唯一标识记录到新一个新表 tblrecordlog 中,然后写一个同步程序根据 tblrecordlog 同步数据。

2. 有一个项目,背景:只读对方数据库,对方不允许对他们的数据库做任何变更(甲方核心业务系统,没人肯背锅,没法用方案 1 )。需要将对方业务数据每天导入到我们的数据库里做数据分析。数据量大概是 10 万条/天,在开协调会的时候,对方信誓旦旦的承诺业务数据不会变更昨天及之前的数据。

然后项目跑起来,发现对方系统会偷偷变更以前的数据,1 个月会出现几条到十几条。我们的应对措施是先根据日期汇总前 90 天的金额和笔数与我们数据库做比较,如果不相同就同步整天的所有记录。
buyerhou 小成 2024-8-14 17:06:51
使用 otter 服务,可以进行 mysql 数据库之间的同步,采用了这个方案的话,请回复下
Foxkeh 小成 2024-8-14 21:45:27
主从备份
12下一页
返回顶部