
[英]Need help on retrieving JSON attributes from a flow file in Apache NiFi
[英]Nifi Streaming from Json file
我有一个不断更新的新项目的Json文件。 使用Nifi,我想创建一个从该Json文件实时提取内容的流,然后制作一个输出文件,例如可以是CSV,以便随后可以在Excel中使用它进行一些分析。 我是Nifi的新手,所以您能为这个活动提出一些流程建议吗? 任何让我入门的东西都将大有帮助。
此流程有很多操作要执行,我可以提供一些解决方法:
检索更新的JSON文件:要连续获取文件(如果文件已更改),可以使用连接到FetchFile处理器的ListFile处理器,并将FetchFile属性“ Completion Strategy”设置为“ None”。 这会将JSON文件保留在文件系统上。 如果不断地重新生成JSON文件,则可以对策略使用“移动”或“删除”。
提取JSON值(如果文件的内容在更改时被替换):如果您要查找的值位于同一位置(即始终保持相同的JSONPath表达式),则可以使用EvaluateJsonPath提取值转换为属性。 要将值返回到内容中(用于转换为CSV),可以使用ReplaceText(带有Expression Language)将属性放回内容中。
提取JSON值(如果将新项目插入到文档中):如果这些项目是数组的一部分,则可以使用SplitJson为文档中的每个元素生成流文件。 这将涉及更复杂的处理,因为您可能希望忽略已经看到的元素。 您可能可以使用ReplaceText(请参见上文)在内容中放入某些值,然后使用Put / FetchDistributedMapCache来检查数组元素是否已被处理。
输出CSV:对于每个包含要用作CSV字段的属性的流文件,可以使用ReplaceText生成一行CSV。 然后,您可以使用MergeContent创建完整的CSV文件。 注意,这没有标题,您可以使用最终的ReplaceText插入标题行,然后插入传入的内容。 然后PutFile将CSV文件写入磁盘。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.