使用NIFI,如何将属性从同样包含在同一zip中的json文件应用到zip中的文件



使用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

我建议从ListFileFetchFile(或GetFile本身(的组合开始检索存档,CompressContent提取组件文件,RouteOnAttribute使用流文件文件名属性来分离包含category.json的流文件,而EvaluateJSONPath处理器则检索该流文件的JSON内容并将某些值填充到属性中。

从那时起,尚不清楚您的问题是如何更新包含该档案中一个数据文件的每个流文件的NiFi流文件属性,还是将提取的JSON应用于磁盘上的数据文件。

假设是前者,您可以将提取的JSON写入变量或参数(使用ExecuteScript(,并使用UpdateAttribute将这些属性应用于CompressContent处理器生成的其他流文件。

最新更新