合并加入Pentaho问题

时间:2018-02-02 16:52:14

标签: merge pentaho pentaho-spoon

我有这个问题:

我在A和B中有两个来源和一个合并加入步骤(在INNER选项中)。 图像显示了我面临的情况。

enter image description here

我获得了正确的标识符,但最新行的值为每一行重复了n次。

我需要从A中获取B中的所有标识符。

我知道还有这些选项:数据库加入数据库查找,但考虑到我需要检查大量数据,它们可能会很慢

我应该使用什么组件来获得Pentaho中的预期结果。

问候。

3 个答案:

答案 0 :(得分:2)

我无法复制这个问题。

更可能的错误是

  1. 输入流未排序,
  2. 切换第一步(主)和第二步(跟随者)
  3. 密钥不正确(快速点击下拉框)
  4. 现在,我认为你的目标是从B中过滤出标识符不在A中的所有行。我建议反转流程:对于B的每一行,你在A中查找标识符,然后过滤掉标识符在A中找不到。

    作为一般规则,更喜欢LookUp步骤。它比SQL连接更加快速,更接近人类的思维方式。

    如果您需要为每个输入行抓取多个记录,请使用Merge Join(并对输入流进行排序)。

    出于性能原因,请避免使用数据库Join和Lookup。

答案 1 :(得分:0)

当您使用LEFT OUTER时,您正在使用INNER JOIN,我使KTR按照您描述的方式提供2个数据网格,并且我得到了您想要的结果。

我确实使用了排序行步骤,在合并连接步骤之前对两个流上的ID进行排序。 enter image description here

答案 2 :(得分:-1)

我认为您尚未在合并联接之前对传入的数据进行排序。 这是一段视频,说明如果在Pentaho中合并联接之前不对传入数据进行排序,会发生什么情况。

链接:https://youtu.be/DBjqjXth-5E