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
变量中有来自 filename
的 672748
和 684919
。
我需要将每个具有相同 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 将 []
添加到其中。
我的目录中有如下所示的 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
变量中有来自 filename
的 672748
和 684919
。
我需要将每个具有相同 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 将 []
添加到其中。