先来说说需求吧,这次设计的迁移脚本是oracle2mysql的一套脚本。由于公司使用的分布式数据库中间件,在确保能使用kettle的批量导入功能下需要对数据进行一个分片的导入(这次脚本采用的是讲oracle表直接分片,再导入每张分片表到mysql内,也可考虑单表导入的时候才用对分片键取模的方式进行导入)这里提供一个设计的思路,小伙伴们可以根据自己的实际情况进行脚本的修改;
首先脚本文件如下:
除去一些kettle的转换及任务文件,添加了一个配置文件用来记录分片表后缀编号,和前缀(结合自身业务);
内容就是列名和实际要传入的内容,可以根据需求自己进行修改设计;这个设计是基于分片表横向切分而做的,比如说我有100张分片表,则可以使用完全相同的kettle文件,仅需在这个配置文件中,录入不同的分片表前缀及编号。做到横向切分,并行多个kettle脚本进行数据迁移。
然后看一下整个脚本的流程:
首先是主流程:
之后是传输流程: