kettle动态传输多表所遇问题

  客户切换服务器,涉及数据迁移。由于数据不是太庞大,不想用备份迁移来实现。

  数据库有两种,一个是mysql , 一个是clickhouse 

  所遇问题:

  1、mysql迁移时,字段为''的值,转换为null,于是有由不能为null的就报错了

  解决办法:

  C:\Users\用户名.kettle目录中找到kettle.properties,增加 KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=Y

  2、有一张表六百万条记录,传输了一个多小时。

  解决办法:经查需要设置连接参数

  defaultFetchSize:5000
  useCursorFetch : true 相当于告诉数据库,分批读取数据,每次打包5000条回来
  rewriteBatchedStatements : true 插入数据的时候,批量插入
  useServerPrepStmts : true 启动预编译
  useCompression : true 客户端跟服务器之间的数据压缩传输 

  表输出,调整提交记录数量由1000改为10000

  主流程

  

    invok_trans

   

  runtrans

 

   setvariable

   trans_table

 

posted @ 2023-05-12 19:52  biangj  阅读(188)  评论(0)    收藏  举报