kettle -数据同步-步骤 与问题

1为源头数据库【pgsql】

2为目标数据 库【MySQL】

 pgsql 有Boolean 类型  MySQL 没有 在合并记录时会报错

合并记录.0 - ERROR (version 9.1.0.0-324, build 9.1.0.0-324 from 2020-09-07 05.09.05 by buildguy) : Unexpected error
2023/08/16 08:49:29 - 合并记录.0 - ERROR (version 9.1.0.0-324, build 9.1.0.0-324 from 2020-09-07 05.09.05 by buildguy) : org.pentaho.di.core.exception.KettleException: 
2023/08/16 08:49:29 - 合并记录.0 - 不正确的数据格式,不同数据流中要合并的字段的结构和位置都应该相同.
2023/08/16 08:49:29 - 合并记录.0 - 
2023/08/16 08:49:29 - 合并记录.0 - 第34列的数据类型和接收到的第一行的数据类型不同: 不同格式的行被混在了一起,Field [is_stand Integer(2)] 和 field [is_stand Boolean]的数据类型不同.
2023/08/16 08:49:29 - 合并记录.0 - 

解决办法 MySQL Boolean 类型被定义成  tinyint 

在 上图1 中 查询语句 做转换即可

记录排序 【默认】

 

 获取字段 【全部即可】

合并记录

 旧数据源 为 目标数据库

新数据源 为  源头数据库

标志字段自定义-最好和数据库字段区分开

【通过关键字 将两份 排序 归类在一起   数据字段为要比对的字段】

通过合并步骤  的 preview 可以看到

gz 在最后一列 有如下几个值

Identical” : 关键字段在新旧数据源中都存在,且域值相同

“changed” : 关键字段在新旧数据源中都存在,但域值不同

new” :  旧数据源中没有找到该关键字段

deleted”:  新数据源中没有找到关键字段

同步数据

 用来查询的关键字 我这边的业务只用主键即可  【能查出要同步的数据】

更新字段  如果 点击的是  右边 获取更新字段  自动映射的  要把上一步骤里的 自定义的 gz 去掉 否则报错

在上图 最上边  高级  里配置 操作 【根据业务需求】

Kettle数据同步时将空字符串当做NULL传递问题的解决

C:\Users\用户名.kettle\kettle.properties

KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=Y

然后重启Kettle就可以了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值