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

时间:2017-10-28 17:47:41

标签: pentaho transformation

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

这样的步骤:

  1. 从api
  2. 加载编号
  3. 从表中获取数字
  4. A)如果数字不在表格中 - >将数字设置为值999

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

  5. 继续使用该号码进行转换

  6. 我有这个atm: transformation

    但问题是如果数字不在表中,则不返回任何内容。我试图检查javascript,如果number = null或0,则将其设置为999。

    提前致谢!

1 个答案:

答案 0 :(得分:2)

用查找流替换Input rain-type表。

您使用rest阅读主要输入,使用Input table阅读维度表,然后创建Stream Lookup,其中指定lookup step是维度输入表。在此步骤中,您还可以指定默认值999。

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

enter image description here