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

GoldenDB数据库数据迁移

乐呵呵 2024-06-29
225

支持分布式数据库批量数据导入,应用场景如:异构数据库之间的数据迁移,如将oracle数据库数据导出为数据文件,可直接使用该工具导入到goldendb数据库中;用户应用端生成的数据批量保存到数据库中等。 支持分布式数据库批量数据导出;应用场景除了异构数据库之间的数据迁移外,还可用作为数据逻辑备份,下游用户应用进行数据分析、统计、处理等。 目前数据接口形式为文件接口。

典型组网

分布式数据库批量导入导出支持两种典型组网方式,介绍如下。

计算节点通道

典型组网图如下,包括数据文件、文件传输节点、计算节点、数据存储节点。

● 各节点职责介绍:

● 数据文件:导入导出时目标文件,CSV格式,导入时将CSV数据导入到数据库表中,导出时将数据库表中数据导出为CSV格式。

● 文件传输节点:导入导出主要执行模块,工具为LDS,负责读取、校验CSV文件,通过计算节点插入、查询数据库。导出时还有工具为goldendumper,也支持经过计算节点获取表数据并落盘为CSV文件。

● 计算节点:分布式数据库代理节点,执行增删改查等所有数据操作。

● 存储节点:实际存储数据节点,分布式管理。

文件传输协议通道

典型组网图如下,包括:数据文件、文件传输节点、元数据管理节点、集群管理节点、存储节点代理节点、数据存储节点。

注:长虚线代表表示信息,短虚线表示文件流。

● 各节点职责介绍:

● 数据文件:介绍如上。

● 文件传输节点(LDS):数据导入导出服务器,导入导出主要执行模块,此处goldendumper模块不支持文件传输协议通道。

● 元数据管理节点(MDS):管理分布式数据库所有元数据,在本功能中提供表相关信息。

● 集群管理节点(CM):数据库集群管理中心,在本功能中负责转发LDS控制命令到存储节点代理节点,接收汇总代理节点响应并回复LDS。

● 存储代理节点(DBAgent):存储节点监控代理程序,在本功能中负责连接数据库节点,实际执行LDS下发的导入导出命令。

典型组网
计算节点通道

1)数据导入

数据导入功能LDS内部设计简单原理如下:

如上图示描述的为一个导入任务,内部设计一个IO线程负责读取CSV文件,按行读取每读取一个批次即放入到解析队列。解析队列设计多个线程可配置,获取解析数据后进行合法性校验、字符集转化、列字段处理等,解析完成放入执行队列。执行队列获取批数据后,按照一定大小数据量连接计算节点执行,此处执行线程可配置多个计算节点,并具有高可用特性。执行失败的数据继续放入后续的落盘队列生成失败数据、错误数据,任务执行后用户可根据具体情况,重试错误数据、修复异常数据等,从而完成一个完整的数据导入过程。

2)数据导出

1)Controller模块:

①制定策略(SQL查询是否并发等),调度三类worker开始任务。

②启动巡检线程,监控worker运行状态及异常退出。

③巡检线程保持客户端会话,通知任务进度。

2)SQLQueryer模块:

①连接计算节点执行查询,查询一个批次加入到后端队列。

②设计考虑支持多条链路并发查询。

3)CSVAssambler模块:

①队列获取批次,添加行列控制字符拼装行CSV。

②理论上该模块纯内存操作,不是性能瓶颈点,先设计一个线程。

4)CSVDumper模块:

①队列获取批次将拼装好的csv落盘。

②落盘场景,目前支持合并落盘为一个文件。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论