6

我是 Pentaho 的新手(今天安装)。我能够在 Spoon 中进行基本的转换。现在我需要做一些事情,我不知道该怎么做。

我的输入看起来像

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

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

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

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

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

4

2 回答 2

8

CSV File Input您应该首先使用 using|作为分隔符来获取您的输入。然后您可以将第三个字段作为字符串获取。

接下来,您可能需要通过一个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 地址。这是一个很好的做法,在你完成这项工作之后,将你的地址设置为系统变量,所以如果它发生变化,你不需要在你的转换中到处替换它(查看 menu Edit -> System Variables)。

现在在同一Calculator步骤上创建另一个字段,比方说MyAddress,使用 operation A+B。选择您刚刚创建Field A的字段,以及您输入的第三个字段。tmpAddrField B

现在在您的流中,您应该将完整地址作为字段MyAddress。连接一个REST client步骤。标记Accept URL from field并选择字段MyAddressURL Field Name。设置Application TypeJSON。设置Result FieldnameMyResult

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

于 2012-09-19T12:19:10.680 回答
2

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

  1. 将“使用正则表达式”设置为 Y
  2. 将“搜索”设置为(.*)
  3. 将“替换为”设置为http://api.app.com/app/api/v1/feature/$1
  4. 将“整个单词”设置为 Y

正则表达式中的括号设置了一个捕获组,然后您可以使用 $X 语法将其插入到替换字符串中

于 2013-03-08T20:31:24.290 回答