数据工具
最近在一个系统改造的项目工作,在项目开发之前,进行设计的时候,总是要考虑一件事,就是新系统上线前,需要将老系统的数据迁移到系统的数据库中;因为项目比较大,不同的项目组,都自行写了一套数据迁移的代码;最近又处于相对的空闲,花了点时间写了一个比较通用配置化的数据迁移的工具。
- 需求
- 设计思路
- 配置文件说明
- 扩展说明
需求
在进行系统改造或系统升级的时候,会有将旧系统的数据迁移到新系统中的需求;对这需求的进行细分会有以下几种:
- 源数据的表与目标表的表结构是一样,只是单纯的将数据从A表COPY到B表;
- 源数据的表与目标数据的表的表结构有不一样,比如字段的属性从Integer 到 String 之类的变化;
- 目标表的数据是有俩张或多张表中抽取出来的,并且字段的属性可能有变化,这些数据表都是来自同一个库
- 基于第三种情况,目标表的数据可能来自于不同数据库的不同表;
- 除上述情况,需要有自定义的扩展以满足特殊要求
设计思路
从配置文件中读取配置信息,生成一个运行上下文及任务集合,然后丢到一个运行容器中进行执行任务。
执行容器有俩个功能:
- 执行迁移任务
- 输出错误数据的日记;
配置文件说明
执行容器的上下文是根据配置文件生成的,有数据源,类型装唤起,自定义的属性,还有最核心的,迁移任务配置;
数据源配置
<dataSources> <dataSource id="targetDB" dbType="mysql"> <url>jdbc:mysql://192.168.31.108:3306/test</url> <username>xxx</username> <password>xxxx</password> <driverClass>com.mysql.jdbc.Driver</driverClass> </dataSource> <dataSource id="srcDB" dbType="mysql"> <url>jdbc:mysql://192.168.31.108:3306/testA</url> <username>xxx</username> <password