如何在Pentaho勺子中连接字符串?

时间:2012-09-19 09:21:29

标签: business-intelligence pentaho kettle

我是Pentaho的新手(今天安装)。我能够在Spoon中进行基本的转换。现在我需要做一些事情,我无法弄清楚如何。

我的输入看起来像

2012-09-17|garima|fbhjgjhgj87687jghgj88jgjj|garima#1347868164626|::ffff:120.56.132.137

第3个字段是一个ID,我需要从REST API获取一些信息

http://api.app.com/app/api/v1/feature/fbhjgjhgj87687jghgj88jgjj

在Spoon中我需要做什么才能完成这项工作?

此外,数据返回将采用json格式。我该如何解析?

2 个答案:

答案 0 :(得分:8)

您应首先使用CSV File Input作为分隔符,使用|获取输入。然后你可以将第3个字段作为字符串。

接下来,您可能需要使用String operations步骤从此字符串中删除所有空格。查看Remove special character列,然后选择space

然后您需要将其与您的http地址http://api.app.com/app/api/v1/feature/连接起来。为此,您将使用Calculator步骤。在此步骤中,首先创建一个新的临时字段tmpAddr,其中包含操作Define a constant value for ...(或类似的内容,抱歉,我的勺子是葡萄牙语)。在Field A列,您将编写您的http地址。在您完成这项工作后,将您的地址设置为系统变量是一个很好的做法,因此如果它发生变化,您无需在转换的任何地方替换它(请查看菜单Edit -> System Variables)。

现在在同一个Calculator步骤中创建另一个字段,假设MyAddress,操作A+B。选择您刚刚创建的Field A字段tmpAddr,以及输入中Field B第3个字段。

现在,在您的信息流中,您应该将完整地址作为字段MyAddress。连接REST client步骤。标记Accept URL from field并选择字段MyAddress作为URL Field Name。将Application Type设为JSON。将Result Fieldname设为MyResult

如果您需要进一步的JSON解析,可以添加Json input步骤。设置Source is defined in a field并选择字段MyResultGet Source from field

答案 1 :(得分:2)

另一种方法是使用“替换字符串”步骤来附加字符串。

  1. 将'使用RegEx'设为Y
  2. 将“搜索”设置为(.*)
  3. 将“替换为”设置为http://api.app.com/app/api/v1/feature/$1
  4. 将'整个字'设为Y
  5. 正则表达式中的括号设置了一个捕获组,然后您可以使用$ X语法将其插入到替换字符串中