暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

GoldenDB导入导出概述

原创 蒋宇智 2024-04-09
770
概述
主要功能

GoldenDB数据迁移工具SLOTH,完成GoldenDB数据库与GoldenDB(包括不同的分片数量场景)、异构数据库(Oracle、MySQL等)之间的全量数据、增量数据的迁移和同步,同时提供迁移过程中的数据比对功能。

产品架构
功能组网

典型组网图如下。

1.全量数据迁移:将源端数据库中需要迁移的表的全量数据迁移到目的数据库中,如果在全量迁移后需要做接续的增量迁移,在全量迁移的同时会采集源端数据的变化存储在kafka中,等全量迁移完成后,开始增量的同步。

2.增量数据同步:可以配置为全量完成后自动接续的数据同步,也可以配置从某一个位点独立开始的增量数据同步。

3.数据比对功能:对迁移同步的数据进行比对,包含全量迁移的数据和增量同步的数据。由于源端在迁移过程中不停业务,存在动态变化的数据,因此在每批比对时都会比对上一批失败的数据的,比对完成后,在界面上显示比对结果。通过界面数据可以判断是数据比对失败还是由于同步过程数据又发生变化而导致的比对失败。

产品架构

迁移工具内部主要包括有:

任务管控平台:任务的配置、管理、监控

采集组件:全量数据采集,增量解析相关日志得到增量数据信息。

回放组件:对数据做类型过滤,相关ETL操作后插入到目的数据库中。

比对组件:对全量、增量数据进行比对、修复功能。

组件原理
采集组件

1)概述

采集组件是生产者,从源数据库采集数据,以标准格式存入kafka队列,等待回放组件进行消费。

2)与采集组件交互的模块

sloth-manager管理平台:安装和启停采集组件

源端数据库:获取数据,产生数据变更

zk:组件级zk节点,任务级zk节点

kafka:kafka的topic存放采集组件生成的json消息

文件系统:配置文件,日志文件

3)工作过程

1.通过slothmanager创建采集组件,创建组件级zk节点

2.启动采集组件,监听组件级zk节点

3.运行同步任务,在该采集组件级zk节点下创建任务级zk节点并注册消息

4.采集组件监听到子节点不为空,解析子节点zk消息并写入到配置中

5.采集组件读取配置信息,创建引擎,通过Debezium等捕获源端数据库数据的变化并进行处理

6.采集组件将数据生成json消息发送到对应kafka的topic,供回放端进行消费

回放组件

1)概述

回放组件是消费者,从kafka队列中消费采集组件存入的数据,生成可执行的SQL,写入目标端数据库

2)与回放组件交互的模块

sloth-manager管理平台:安装和启停回放组件

zk:组件级zk节点,任务级zk节点

kafka:回放组件去消费kafka的topic存放采集组件生成的json消息

目标端数据库:执行回放组件生成的SQL,更改数据库中的内容

文件系统:配置文件,日志文件

3)工作过程

1.通过slothmanager创建回放组件,创建组件级zk节点

2.启动回放组件,监听回放组件级zk节点

3.运行同步任务,在该回放组件级zk节点下创建任务级zk节点并注册消息

4.回放组件监听到子节点不为空,解析子节点zk消息并写入到配置中

5.回放组件读取配置信息,订阅并消费采集组件推送至kafka的消息,通过计算线程后生成可执行的SQL,通过写入线程将SQL写入目标端数据库

6.目标端数据库执行回放组件生成的SQL语句,更改数据库中的内容

比对组件

1)概述

数据比对工具用于完成源端数据库到目标端数据库之间数据迁移相关的验证工作,并在此基础上,对差异化数据提供手动修复功能。

2)与比对组件交互的模块

sloth-manager管理平台:安装和启停比对组件

zk:比对任务下发zk节点,回放进度上报zk节点,修复命令下发zk节点,比对进度上报zk节点

kafka:获取需要比对的数据,写入差异化数据

源端和目标端数据库:比对过程中查询源端和目标端的表结构元数据信息、表数据,修复过程中在目标端执行DELETE+INSERT

文件系统:配置文件,日志文件,比对差异化结果文件

3)比对过程

1.在管理平台创建比对组件后,zk创建比对任务信息节点

2.比对任务启动后,下发元数据信息至比对任务信息zk节点

3.比对组件监听回放进度的zk节点,回放进度达到阈值时,触发比对拉取任务以及比对进度信息上报zk节点

4.从比对任务信息zk节点获取比对任务对应的topic和分区信息等

5.从kafka中拉取需要进行比对的数据,通过解析任务对应的json消息获得topic和分区

6.从源端数据库和目标端数据库分别取出需要的数据,依次进行数据比对

7.将差异化结果写入kafka

8.检查同步过程是否结束

9.比对任务完成后,可手动触发修复,检查有无差异化数据,如果有,则进行修复    

文章转载自蒋宇智,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论