Nifi 按相似属性值合并内容

Nifi merge content by similar attribute value

我的目录中有如下所示的 zip 文件:

139909-JSON.zip
139910-JSON.zip
...

而每个zip文件的内容是这样的:

1
  672748
    1399101-672748-content.json
    1399101-672748-header.json
2
  684919
    1399101-684919-content.json
    1399101-684919-header.json
...

我现在正在使用 GetFile > UnpackContent > UpdateAttribute -> MergeContent 流程。但是我无法真正合并我的数据。

GetFile: 获取所有 zip 文件。

UnpackContent: 解压缩 zip 文件并获取所有 .json 个文件。

UpdateAttribute: 我在 TracingNo 变量中有来自 filename672748684919

我需要将每个具有相同 TracingNo 值的文件合并到一个 JSON 文件中。

我该怎么做?

如果您使用 RouteAttribute 让所有具有相同 TracingNo 的流文件以相同的方式路由以使其路由到相同的 MergeContent,会怎样? 可以对 RouteAttribute 执行此操作,以便每个 TracingNo 以自己的方式发送,以便每个方向上的所有流文件都具有相同的 TracingNo 以允许您处理相同的值并将它们组合

此语句中的问题:每个 TracingNo 最少 1 个和最多 2 个文件。

最好知道合并内容的文件数量

但是尝试分两步完成:

MergeContent 参数:

Merge Strategy =    Bin-Packing Algorithm
Merge Format =  Binary Concatenation
Correlation Attribute Name = TracingNo
Minimum Number of Entries = 2
Maximum Number of Entries = 2
Max Bin Age = 10 seconds
Delimiter Strategy = Text
Header = [
Footer = ]
Demarcator = ,

此处理器将在 10 秒内等待第二个文件。单个文件将被归类为失败,您可以使用 ReplaceText 将 [] 添加到其中。