0

我有一个不断更新新项目的 Json 文件。使用 Nifi 我想创建一个从这个 Json 文件中实时提取内容的流程,然后制作一个可以是 CSV 的输出文件,以便我可以在 Excel 中使用它进行一些分析。我是 Nifi 的新手,所以你能为这个活动推荐一些流程吗?任何让我开始的事情都会很有帮助。

4

1 回答 1

3

此流程需要执行许多操作,我可以提供一些方法来解决每个问题:

  • 检索更新的 JSON 文件:要持续获取文件(如果它已更改),您可以使用连接到 FetchFile 处理器的 ListFile 处理器,并将 FetchFile 属性“完成策略”设置为“无”。这会将 JSON 文件保留在文件系统上。如果 JSON 文件不断重新生成,您可以使用“移动”或“删除”作为策略。

  • 提取 JSON 值(如果文件的内容在更改时被替换):如果您要查找的值在同一个地方(即始终相同的 JSONPath 表达式),您可以使用 EvaluateJsonPath 来提取值转换为属性。要将值返回到内容中(用于转换为 CSV),您可以使用 ReplaceText(使用表达式语言)将属性放回内容中。

  • 提取 JSON 值(如果新项目插入到文档中):如果项目是数组的一部分,您可以使用 SplitJson 为文档中的每个元素生成流文件。这将涉及更复杂的处理,因为您可能希望忽略已经看到的元素。您可以使用 ReplaceText(见上文)将某些值放入内容中,然后使用 Put/FetchDistributedMapCache 检查数组元素是否已被处理。

  • 输出 CSV:对于每个包含您想要作为 CSV 字段的属性的流文件,您可以使用 ReplaceText 生成一行 CSV。然后您可以使用 MergeContent 创建一个完整的 CSV 文件。请注意,这不会有标题,您可以使用最终的 ReplaceText 插入标题行,然后是传入的内容。然后 PutFile 会将 CSV 文件写入磁盘。

于 2016-03-16T17:32:57.643 回答