我正在尝试使用EnforceOrder处理器以确定的顺序进行合并。为此,这是我的流程:
在updateAttribute中,我正在生成一个属性以设置合并中所需的顺序。 在左边的一个中,我将值设置为“ 1”,在另一个中,我将其值设置为“ 2”。
然后是EnforceOrder的配置:
问题在于,仅到达 process.order = 1 的流而没有取出数字2。我在做什么错了?
欢呼
答案 0 :(得分:2)
使用 EnforceOrder
处理器来控制流文件到达 MergeContent
处理器的顺序。
UpdateAttribute
处理器将序列号添加到流文件中。示例:
sequence number
比 flowfile1 低,然后提供{{1 }}与 success
处理器的连接,通过使用forceforceorder处理器,我们确保flowfile2将在flowfile1之前进入 Mergecontent 处理器。请参考this,并使用强制顺序模板来熟悉MergeContent
处理程序。
更新:
我认为问题在于EnforceOrder配置,
组标识符配置为 enforce order
,因此,如果您使用两个不同的文件名,则处理器将不会等待它们。
要解决此问题,请在{strong> ${filename}
处理器(如UpdateAttribute
)中将 common属性保留为gn,然后在中使用相同的属性名称组标识符的属性值为 group_name
将 ${group_name}
连接自身连接到EnforceOrder处理器。
UpdateAttributeConfigs:
请使用this模板作为参考,并将其上传到您的NiFi实例,以查看流的运行方式。