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

Kar*_*ava 2 apache-nifi kylo

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

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

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

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

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

如果我使用键“a”加入,则预期输出:

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

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

Bry*_*nde 5

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

您需要使用 EvaluateJsonPath、ExtractText 或某些自定义脚本处理器将字段“a”的值提取到流文件属性中,然后一旦进入“my.key”等属性,然后将“my.key”放入流文件属性中。键”到相关属性属性中。

  • @KarthikMannava 它只能是一个属性,但是您可以轻松地在前面放置一个 UpdateAttribute 并创建一个新属性,例如 c = ${a}_${b} 现在将是 a 和 b 的组合值 (2认同)