dbswitch异构数据库迁移工具

联合创作 · 2023-09-30 23:57

dbswitch是一个异构数据库迁移工具,提供源端数据库向目的端数据的迁移功能,包括全量和增量方式。


迁移包括:



  • 结构迁移


字段类型、主键信息、建表语句等的转换,并生成建表SQL语句。



  • 数据迁移


基于JDBC的分批次读取源端数据库数据,并基于insert/copy方式将数据分批次写入目的数据库。


支持有主键表的 增量变更同步 (变化数据计算Change Data Calculate)功能(千万级以上数据量慎用)


功能设计


function


详细功能



  • 源端oracle/SqlServer/MySQL/MariaDB/PostgreSQL/DB2向目的端为Greenplum/PostgreSQL的迁移(支持绝大多数常规类型字段)


  • 源端oracle/SqlServer/MySQL/MariaDB/PostgreSQL/DB2向目的端为Oralce的迁移(支持绝大多数常规类型字段)


  • 源端oracle/SqlServer/MySQL/MariaDB/PostgreSQL/DB2向目的端为SQLServer的迁移(字段类型兼容测试中...)


  • 源端oracle/SqlServer/MySQL/MariaDB/PostgreSQL/DB2向目的端为MySQL/MariaDB的迁移(字段类型兼容测试中...)


  • 源端oracle/SqlServer/MySQL/MariaDB/PostgreSQL/DB2向目的端为DB2的迁移(字段类型兼容测试中...)



结构设计



  • 模块结构设计

    structure


  • 模块结构功能




└── dbswitch
├── dbswitch-common // dbswitch通用定义模块
├── dbswitch-pgwriter // PostgreSQL的二进制写入封装模块
├── dbswitch-dbwriter // 数据库的通用批量Insert封装模块
├── dbswitch-core // 数据库元数据抽取与建表结构语句转换模块
├── dbswitch-sql // 基于calcite的DML语句转换与DDL拼接模块
├── dbswitch-dbcommon // 数据库操作通用封装模块
├── dbswitch-dbchange // 基于全量比对计算变更(变化量)数据模块
├── dbswitch-dbsync // 将dbchange模块计算的变更数据同步入库模块
├── dbswitch-data // 工具入口模块,读取配置文件中的参数执行异构迁移同步
├── dbswitch-webapi // dbswitch-core与dbswitch-sql的RESTful接口模块
├── package-tool // 基于maven-assembly-plugin插件的项目打包模块
浏览 25
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报