合并加入 Pentaho 问题

Merge Join Pentaho Issue

我有这个问题:

我在 A 和 B 中有两个来源和一个合并连接步骤(在 INNER 选项中)。 该图像显示了我所面对的。

我得到了正确的标识符,但最后一行的值对每个标识符都重复了 n 次。

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

我知道还有这些选项:数据库连接和数据库查找,但考虑到我有很多数据要检查,它们可能有点慢

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

此致。

我无法重现这个问题。

更可能的错误是

  1. 输入流未排序,
  2. 第一步(master)和第二步(follower)互换
  3. 密钥不正确(点击下拉框很快)

现在,我认为您的目标是从 B 中过滤掉所有具有不在 A 中的标识符的行。我建议反转流程:对于 B 的每一行,您在 A 中查找标识符,然后过滤掉在 A 中找不到标识符。

作为一般规则,更喜欢 LookUp 步骤。与 SQL 连接相比,它超级快并且更接近人类的思维方式。

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

如果出于性能原因可以使用数据库连接和查找,请避免使用。

你使用的是 INNER JOIN,而你应该使用 LEFT OUTER,我制作了一个 KTR,完全按照你描述的方式提供 2 个数据网格,我得到了你想要的结果。

我确实使用了排序行步骤,在 Merge Join 步骤之前对两个流的 ID 进行排序。

我认为您在 Merge Join 之前没有对传入的数据进行排序。 这是一个视频,解释了如果在 Pentaho 中合并连接之前不对传入数据进行排序会发生什么情况。

Link: https://youtu.be/DBjqjXth-5E