You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pentaho Data Integration中实现左连接后展示唯一匹配记录

在Pentaho Data Integration中实现有序一一左连接的方法

核心思路

因为两个数据源的匹配规则是同分组内按数据出现顺序一一对应,而非单纯基于字段等值匹配,所以需要给两个数据流添加分组内的自增行号,再通过「共同分组键(ID+Code)+行号」进行关联,就能实现预期的一一匹配效果。

具体实现步骤

1. 处理第一个数据源(含Amt、PK的表)

  • 添加 Add sequence 组件:
    • 设置Name of sequence field为row_num(字段名可自定义,只要和第二个数据流保持一致即可)
    • 勾选Reset sequence for each group,并将分组字段设为ID和Code,确保同一ID+Code组合下,行号从1开始依次自增。

2. 处理第二个数据源(含FK的表)

  • 同样添加 Add sequence 组件:
    • 设置Name of sequence field为row_num(和第一个数据流的行号字段名保持一致)
    • 勾选Reset sequence for each group,分组字段同样设为ID和Code,保证同分组内行号从1开始递增。

3. 关联两个数据流

  • 使用 Merge Join 组件:
    • 选择Join type为Left outer join(左连接)
    • 设置连接键为ID、Code、row_num三个字段,以此确保同分组内第N行的记录,能和另一数据源同分组的第N行精准匹配。
    • 调整输入数据流顺序,将第一个数据源设为左表输入。

4. 清理冗余字段(可选)

  • 如果不需要保留行号字段,可添加 Select values 组件,移除row_num字段,得到最终的目标结果。

为什么Stream Lookup无法实现?

Stream Lookup是基于匹配键查找并返回符合条件的第一条/最后一条(或指定聚合值),它无法识别数据的顺序逻辑,因此没法实现同分组内的有序一一对应。而通过添加分组行号的方式,给每条记录加上了“顺序标识”,就能精准匹配对应位置的记录。

内容的提问来源于stack exchange,提问作者Rajiya honey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 23:15:35