一句话,dbswitch工具提供源端数据库向目的端数据的迁移同步功能,包括全量和变化量方式。迁移包括:
Gitee地址:https://gitee.com/inrgihc/dbswitch
字段类型、主键信息、建表语句等的转换,并生成建表SQL语句。
支持基于正则表达式转换的表名与字段名映射转换。
基于JDBC的分批次读取源端数据库数据,并基于insert/copy方式将数据分批写入目的数据库。
支持有主键表的"变化量"同步 (变化数据计算Change Data Calculate)功能。
dbswitch提供异构关系数据库间的数据迁移同步,支持多种数据库,包括:
dbswitch基于Springboot脚手架进行的后端模块开发,模块组成结构如下:
└── dbswitch ├── dbswitch-common // dbswitch通用定义模块 ├── dbswitch-core // dbswitch迁移同步实现类 ├── dbswitch-product // dbswitch数据库方言 ├── dbswitch-product-mysql // -> mysql方言实现类 ├── dbswitch-product-oracle // -> oracle方言实现类 ├── dbswitch-product-sqlserver // -> sqlserver方言实现类 ├── dbswitch-product-postgres // -> postgres方言实现类 ├── dbswitch-product-dm // -> dm方言实现类 ├── dbswitch-product-kingbase // -> kingbase方言实现类 ├── dbswitch-product-highgo // -> highgo方言实现类 ├── dbswitch-product-oscar // -> oscar方言实现类 ├── dbswitch-product-gbase // -> gbase方言实现类 ├── dbswitch-product-mariadb // -> mariadb方言实现类 ├── dbswitch-product-openguass // -> openguass方言实现类 ├── dbswitch-product-db2 // -> db2方言实现类 ├── dbswitch-product-sybase // -> sybase方言实现类 ├── dbswitch-product-hive // -> hive方言实现类 ├── dbswitch-product-sqlite // -> sqlite方言实现类 ├── dbswitch-product-clickhouse // -> clickhouse方言实现类 ├── dbswitch-product-mongodb // -> mongodb方言实现类 ├── dbswitch-product-elasticsearch // -> elasticsearch方言实现类 ├── dbswitch-data // 工具入口模块,读取配置文件中的参数执行异构迁移同步 ├── dbswitch-admin // 在以上模块的基础上引入Quartz的调度服务与接口 ├── dbswitch-admin-ui // 基于Vue2的前段WEB交互页面 ├── dbswitch-dist // 基于maven-assembly-plugin插件的项目打包模块
dbwitch基于SpringBoot作为项目的基础框架,利用JdbcTemplate提供常规的动态SQL读写操作,实现异构数据库数据的导出与导入功能。
dbwitch-admin模块为用户交互提供了服务接口,基于Mybatis/Mybatis-plus提供配置数据的持久化。
Quartz是一个开源的作业调度框架,它完全由Java写成。dbswitch-admin基于Quartz提供了支持集群模式迁移同步任务调度功能。
Vue是一套用于构建用户界面的渐进式JavaScript框架。 Element是饿了么团队基于MVVM框架Vue开源出来的一套前端基于Vue 2.0的桌面端组件库。
dbswitch-admin-ui模块基于Vue和ElementUI提供可视化的操作WEB界面。