使用Apache Nifi,我想处理一个zip,其中包含一个category.json文件和许多数据文件,如图所示。
somefile.zip
├──category.json
├──datafile-1
├──datafile-2
├──...
├──datafile-n
示例类别.json
{
"category": "history",
"rating" : 5
}
我想做的是解压缩文件,并将category.json数据作为属性应用于每个数据文件。
处理这个问题的最佳方法是什么?
Myabe不是最好的,但有一种方法:
1( 解压缩
2(使用基于category.json文件名的routeOnAttribut
3(在category.jsp流文件中检索类别作为attribut
我建议从ListFile
和FetchFile
(或GetFile
本身(的组合开始检索存档,CompressContent
提取组件文件,RouteOnAttribute
使用流文件文件名属性来分离包含category.json
的流文件,而EvaluateJSONPath
处理器则检索该流文件的JSON内容并将某些值填充到属性中。
从那时起,尚不清楚您的问题是如何更新包含该档案中一个数据文件的每个流文件的NiFi流文件属性,还是将提取的JSON应用于磁盘上的数据文件。
假设是前者,您可以将提取的JSON写入变量或参数(使用ExecuteScript
(,并使用UpdateAttribute
将这些属性应用于CompressContent
处理器生成的其他流文件。