NiFi - 使用 EnforceOrder 和 MergeContent 处理器控制合并两个数据流的顺序

NiFi - Control de order merging two dataflows with EnforceOrder and MergeContent processor

我正在尝试使用 EnforceOrder 处理器以确定的顺序进行合并。为此,这是我的流程:

在 updateAttribute 中,我正在生成一个属性来设置合并中我想要的顺序。 在左侧,我设置值“1”,在另一侧,我设置值“2”。

然后EnforceOrder的配置是下一个:

问题是只到了process.order = 1的流量,并没有取出数字2,我做错了什么?

干杯

使用EnforceOrder处理器控制流文件到达MergeContent的顺序 处理器。

  • 使用 UpdateAttribute 处理器将序列号添加到流文件中。

示例:

  • 考虑 2 个流文件,Flowfile-2(此内容需要先显示)与 flowfile1[=78 相比,sequence number 会更低=] 然后将 success 连接提供给 MergeContent 处理器,通过使用 enforceorder 处理器,我们确保 flowfile2 将进入 Mergecontent flowfile1 之前的处理器。

请参考this并使用强制命令模板熟悉enforce order处理器。

更新:

我认为问题出在 EnforceOrder 配置上,

  • Group Identifier 配置为 ${filename} 所以如果你有两个不同的文件名那么处理器不会等他们俩。

  • 修复此问题 在 UpdateAttribute 处理器(如 group_name 中保留 公共属性 作为gn 然后在 Group Identifier 属性 值中使用与 ${group_name}

    [=81= 相同的属性名称]
  • 连接 Skipped and Wait 连接到它自己的 EnforceOrder 处理器。

更新属性配置:

EnforceOrderConfigs:

请使用 this 模板作为参考,并将其上传到您的 NiFi 实例,查看流程如何 运行。