dbswitch异构数据库迁移工具
dbswitch是一个异构数据库迁移工具,提供源端数据库向目的端数据的迁移功能,包括全量和增量方式。
迁移包括:
- 结构迁移
 
字段类型、主键信息、建表语句等的转换,并生成建表SQL语句。
- 数据迁移
 
基于JDBC的分批次读取源端数据库数据,并基于insert/copy方式将数据分批次写入目的数据库。
支持有主键表的 增量变更同步 (变化数据计算Change Data Calculate)功能(千万级以上数据量慎用)
功能设计
详细功能
-  
源端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的迁移(字段类型兼容测试中...)
 
结构设计
-  
模块结构设计
 -  
模块结构功能
 
└── 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插件的项目打包模块评论
