kettke left join后数据丢失记录

在Kettle中,使用left join操作时遇到数据丢失的问题,原因是表关联条件不充分。通过增加productline_code=prod_line_code的关联条件解决了此问题。为提升后续错误排查效率,建议对数据有深入理解,建立可视化界面以便数据预览,并采用逐步排查错误的方法,如通过对比过滤前后数据找出差异。
摘要由CSDN通过智能技术生成

1.kettle两个表做left join后数据丢失现象

表1

select customer_code,customer_name,code,pk_recitem,system,is_deleted,bill_date,prod_code,productline_code,cost from base_end2end_sale_out_cost_detail WHERE bill_date >= '${startDate}' 
AND bill_date < '${finishTime}'

left join

表2

select 
material_code,
customer_code,
prod_line_code,
org_name,
quantity
from (
SELECT material_code,customer_code,prod_line_code,max(org_name) org_name ,sum( quantity ) quantity
 FROM base_end2end_sale_out_detail 
WHERE bill_date >= '${startDate}' 
AND bill_date < '${finishTime}'
and material_code is not null 
and is_deleted = 0
GROUP BY material_code,customer_code,prod_line_code ) t1 
where t1.quantity != 0

关联条件
code = material_code
customer_code = customer_code

在这里插入图片描述

2.解决方案

因为丢失的数据中关联条件相同。因此在left join 条件中增加
productline_code = prod_line_code。
最终解决该问题

3.如何提高后续查找错误的效率

1.对数据要比较清楚

最早left join前后的数据是能够对上的, 后面left join 的主表增加了一条9902654的补差数据,结果刚好久查了9902654。 如果对这个数据比较清楚,排查错误的效率肯定能够提高

2.增加可视化界面

因为测试没有啥数据,生产主要是linux的集群, 导致运行后基本看不大数据预览,排查错误比较难。后面可以弄个window的生产kettle调试用

3.一步一步的排查错误

其实可以linux的在过滤的时候少了一条数据,原则上是一条都不会少的,将这个过滤后的数据单独输出到一张表和原始数据对比,也能对比出来
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值