kettle 十分钟百万数据迁移

现在需要对以往数据进行整合并进行数据迁移

确定目标表

      数据源及数据量如下

原始待迁移数据
待迁移数据

      目标表与 Z0_工单_整理备份 的字段是一致的。为了方便后续操作(增删改查、数据迁移、增量备份)需要新增几个字段

    1、 id 作为主键,方便更新、删除等修改操作
    2、 inserTime 数据插入时间,记录更新频次
    3、 updateTime 时间戳,记录最近一次更改时间,方便后期数据迁移、增量备份
    4、 source 数据来源,方便后期数据溯源及数据维护

确定好目标表字段后将原始表内的字段进行一一对应。

字段映射

     1、字段分类

  •     保留字段,不对字段做任何修改保留字段名称
  •     更名字段,保留字段内容,但要对字段名称进行修改
  •     删除字段,目前业务不再需要字段,删除

      2、字段类型及干扰数据

               数据由于历史问题,可能存在不规范的情况。
               比如:时间格式内存在汉字;字符串编码格式与当前不一致。

                解决思路:

  •    将所有字段按照字符串进行迁移(使得数据量变大,但可以保证数据平稳迁移,迁移后需要对不规范数据进行修改)
  •    进行错误处理,如果量不大,可手工将数据入库。
  •     提前设置编码格式,ETL当中规范数据值类型(解决方式截图如下)

 优化

     1、  数据库引擎优化

          更改存储引擎InnoDB-》MyISAM,数据插入速度提升一倍,亲测有效

     2、查询优化 

useServerPrepStmts=true
cachePrepStmts=true    
SQL SERVER查询优化

       3、插入优化 

MYSQL 插入优化
KETTLE 表输入优化

      4、JVM 优化

           根据本地计算机硬件情况,分配JVM内存,我本地是16G

KETTLE SPOON.BAT 优化

       5、 灵性优化

            找个没人操作数据库的时段,很重要,效率提升超级明显。

  • 结果展示

        236w 数据不到十分钟迁移完毕,硬件再好点速度会更快。奈何本地条件有限

结果展示

猜你喜欢

转载自blog.csdn.net/weixin_41160534/article/details/104048284