最近工作遇到了一个需求需要设计一个类似通用的数据汇集平台,需要把用户配置的数据源(主要是 Oracle 和 MySQL )中的表以全量和定时增量的方式同步到本平台的数据库
目标数据源的表多的可能上亿条数据,同时平台需要向用户体现当前的同步任务进行的状态,主要是已同步的数据条数、本次同步新增数量、修改数量以及任务的完成情况这些的
由于本人对这大批量的数据没什么经验,目前想到的方式: 自己写代码用变更时间作增量字段来查询插入;这种方式的问题是全量同步时我该如何确认每次查询批次的数据条目数量不能太多,防止数据库压力太大或者 JVM 内存溢出?用数据库 limit 或者 rownum 来确认数量的话在千万或上亿的表中随着数量变大速度会越来越慢,感觉不是一个很好的方式。
思考了一下一时半会找不到合适的方式,所以来请教下 v2er 指点下有没合适的解决方案😂 感谢
1
kangkkk 2022-12-23 16:21:12 +08:00 1
目前公司用 datax 、Streamsets ,Streamsets 比较高级,可视化界面操作,贼牛逼。
|
2
perfectlife 2022-12-23 16:33:32 +08:00
在用 cloundcanal ,同步数据到数仓挺好用的,愿意花钱用 dts 也行,云厂商兜底。
|
3
xwayway 2022-12-23 16:40:33 +08:00 1
只说个人用过的,
1. 如果实时性要求不高 Kettle 定时同步增量就行,可视化界面配置取数 sql + 批处理任务就行; 2. 如果实时性要求高,可以采取 binlog 订阅 + 程序处理的方式,canal |
4
suixn 2022-12-23 16:46:49 +08:00
seatunnel
|
5
howfree 2022-12-23 17:18:11 +08:00 1
canal+mq
|
6
ianEros 2022-12-23 17:23:42 +08:00
canal
|
7
YogaX 2022-12-23 17:24:27 +08:00
flink cdc
|
8
orczhou 2022-12-29 16:43:40 +08:00
算是利益极其相关吧:有个 NineData 的公司,专门做多云的数据同步。可以考虑一下。
|
9
andytao 2023-01-02 14:26:46 +08:00
利益相关: [袋鼠数据库工具] 正准备支持同构、异构数据库同步方案。
|