多步数据库查找Kettle / Pentaho

时间:2016-09-05 13:48:09

标签: mysql database pentaho lookup kettle

我在pentaho中挣扎,我不完全确定pentaho是否能够处理这个问题。我会尽力解释。

所以我在我的事实销售中有一个名为引用号的列,我必须使用该列来查找维表中的ID并返回ID。但是如果我在维度中查找的第一列返回null,我需要在维度中的另一列中检查事实表查找中的相同字段,然后再检查另一列。

在Pentaho有没有办法可以让它通过3个不同的查找过程并返回id,如果这三列中的一列中的匹配存在于实际销售的同一列中。

我使用MySQL作为我的数据库

2 个答案:

答案 0 :(得分:0)

这似乎是Pentaho数据集成的基本任务。

您可以通过执行 数据库查找(或)维度查找/更新(取决于维度的类型)手动执行此操作将每个查找结果存储在不同的字段中。

然后,使用修改的Java脚本值来执行null coalescing - 选择第一个非空值,最后如果需要选择值脚本来删除三列,不再需要查找结果。

下面是一个简化案例的屏幕,但我确信你可以按照它背后的逻辑并在你的案例场景中实现它,因为我已经提到了你可以用来完成任务的步骤:

enter image description here

答案 1 :(得分:0)

使用过滤步骤要快得多。如果查找的第一个值为空,则对null进行过滤以将空流分解为第二个查找,并将找到的数据发送到"找到"步。冲洗并重复,直到你得到你想要的东西。

然后使用多向合并连接将数据集重新拼接在一起。如果结果流全部相同,那么合并连接步骤可能甚至不是必须的,如果它们不是,您可以通过一些选择步骤来实现。不需要立刻查看所有内容,而这实际上并没有利用并行处理来查看所有内容并进行评估。

这有帮助吗?