使用 nifi 根据条件合并流文件?

Merge flow files on condition based using nifi?

我有 3 个流文件来自同一个处理器。

FF1 -> {a:1,b:2,c:'name'}

FF2 -> {a:1,b:5,c:'fruit'}

FF3 -> {a:2,b:3,c:'abc'}

通过使用 MergeContent Processor,我能够合并所有流文件,但我的要求是在 Key 上合并流文件。

如果我使用 Key 'a' 加入的预期输出:

FF1 -> [{a:1,b:2,c:'name'},{a:1,b:5,c:'fruit'}]

FF2 -> [{a:2,b:3,c:'abc'}]

MergeContent 有一个名为 "Correlation Attribute" 的 属性,它是流文件属性的名称,将用于将具有相同属性值的流文件分组在一起(示例中的键).

您需要使用 EvaluateJsonPath、ExtractText 或一些自定义脚本处理器将字段 "a" 的值提取到流文件属性中,然后一旦您进入 [=16= 这样的属性] 然后将 "my.key" 放入关联属性 属性.