Pgsql 全量+增量迁移 tidb
参考了几款工具 datax navicate flink cdc TapData
我们用过dm 同构的 表的dump load 加日志的增量同步那么 同样pg2mysql 要考虑
表结构转换与数据dump load ,还有增量实现起来比较复杂
Datax 需要俩侧建表 表结构需要转换 然后配置表同步信息比较麻烦你要一堆表变成同步映射任务
Navicate 商业的 只能说可用但是效率不高 增量没有需要停机传输时间较长
Flink cdc 看了下有点像 tidb cdc 需要开发
TapData 是一个目前开源的 满足我们需求的一个开源产品大家也可以改进提交代码
1 navicat plum 可以实现异构复制没有增量 之前同步过Oracle 2 gtidb 50G要 1个小时左右 相对较慢 用的盗版的
2.安装 TapData 社区版这个开源的工具:
TapData 分为四层架构,从左到右分别为:
· 数据采集层:基于日志解析的能力,通过开放式框架 Plugin Framework,以实时方式采集数据源中的变更数据并标准化,形成标准时间后进入流处理框架。
· 流数据处理层:通过 TapData 自研方案,在进程内即可完成数据计算、建模和转型,快速得出结果,进入存储层。
· 存储层:在将数据放入存储层时,实际上已经形成了一套逻辑模型,用户只需要专注于业务所需的数据,无需关心存储位置。
服务层:在服务层,有两种主流的数据服务模式 Pull 和 Push。API 支持低代码发布,可按照具体需求发布数据。当所需数据在业务系统中已有存储时,可通过 REVERSE ETL,反向把经过整理、治理的数据推送给用户。
原理就是单线程 dump 下来数据表后,然后转换结构 多线程导入数据 根据解析日志 做增
使用文档
https://docs.tapdata.net/quick-start/install/install-tapdata-community/
部署与运维
docker pull ghcr.io/tapdata/tapdata:latest
执行以下命令启动 TapData 容器:
docker run -d -p 3030:3030 --restart always --name tapdata ghcr.io/tapdata/tapdata:latest
docker run -d -p 3030:3030 ghcr.io/tapdata/tapdata:v3.6.0-664c6c14 您试一下这个版本
Linux 安装版本下载
TapData Community Release 页面 根据提示部署
最好内存大于8G要不然 起不来
Docker exec -it id bash
admin@admin.com,密码为 admin
创建数据源与目标源
创建同步映射任务 并根据需求 打开源端 wal 日志与目标端日志
此时客户端查看同步数据 数据校验是付费的需要其他途径校验
全量同步
增量数据同步
注意问题点:就在创建同步任务的时候要固定表结构比如15 个表同步增量都是基于这15 个表的 此时我们多建一个表 那么这个要新建任务了