如何在Nifi中使用MergeConent处理器

时间:2019-11-15 09:48:02

标签: apache-nifi

我有一个Nifi流,其中在Json中有多行数据,对于每个,需要执行以下操作:

  • 拆分数据(EvaluateJsonPath),并获取相关字段以插入数据库(Mysql)。
  • 采用表A的字段并将其放入数据库。的 此操作的返回值是表A中自动生成的ID。
  • 从表插入中获取返回值,并与表B字段合并。表A的返回值成为表B中的参考值,因此拆分行条目被链接起来。

我已经建立了流程(请参见图片),但是使用MergeContent处理器失败,因为我认为它不知道如何正确合并内容。如果我有200行它只会合并一行,其余的会失败。我已经在Nifi中阅读了有关碎片整理的信息,但未能成功实现该功能,因此感谢您的投入。

流程图:

enter image description here

1 个答案:

答案 0 :(得分:1)

使用合并处理器时,流文件应具有正确的属性,例如fragment.indexfragment.identifierfragment.count。如果您的流文件没有此文件,则合并将无法进行。

在大多数情况下,拆分记录时会自动创建那些属性。因此,只需在SplitAvro之前使用ConvertAvroToJson就可以添加拆分过程。它将查询结果逐行拆分,并执行所需的操作,然后将其合并。