Pentaho将表中的值与来自REST api的数值进行比较

问题描述:

我需要使用pentaho为数据仓库创建维度。 我需要比较表中的数字与我从REST调用中获得的数字。 如果该号码不在表格中,我需要将其设置为默认值(999)。我正在考虑在select语句中使用表输入步骤,如果结果为null,则使用javascript步骤将其设置为999.问题是如果没有结果,则没有任何内容通过。如何才能做到这一点?另一个想法是从该表中获取所有值,并以某种方式将其转换为某种东西,以便我可以在javascript中将数组读取为一个数组。我对pentaho DI很陌生,但是我做了一些研究,但是找不到我想找的东西。任何人都知道如何解决此问题?如果您需要信息,或希望看到我的转变,请告诉我!Pentaho将表中的值与来自REST api的数值进行比较

步骤是这样的:从API

  1. 荷载号
  2. 从表
  3. A)获得编号如果数量不表 - >设置数量值999

    B)如果数字在表格中 - >什么也不做

  4. 继续转换该号码

我有这样ATM: transformation

但问题是,如果该号码不是在表中,它没有返回。我试图检查JavaScript如果number = null或0,然后将其设置为999.

在此先感谢!

+0

如果您从表格或REST中获得您的号码,则不太清楚。 – AlainD

+0

我已经更新了这个问题。让我知道你是否需要更多信息。谢谢。 – JC97

用查找流替换输入雨型表。

您有Input table读取具有rest主输入和维度表,然后让在您指定lookup step是维输入表Stream Lookup。在此步骤中,您还可以指定999的默认值。

查找流的工作原理如下:对于从主流进入的每一行,这些步骤会查看它是否存在于参考步骤中,并将参考字段添加到该行。所以总有一个,正是一个路过。

enter image description here

+0

工程就像一个魅力。不知道Stream Lookup ... – JC97

+1

我喜欢Lookup Stream。更接近你作为一个人,当你开发的时候比连接和其他参数化输入表更加接近。不要害怕读取表格中的大量数据,PDI可以非常有效地处理这些数据。 – AlainD