Nifi:使用 MergeContent Processor 将所有必要的流文件一次性合并

问题描述 投票:0回答:3

这是关于Nifi中MergeContent处理器的问题。 目前,我需要一次性将所有具有某一特定属性的流文件组合起来。

但是发生的情况是,由于有很多具有相同属性的 flowFile, 处理器生成几个与该属性合并的不同流文件,并且这几个流文件应该组合成一个大流文件。

有什么方法可以等待所有具有相同属性的流文件进入合并内容处理器并一次合并所有流文件吗?

如果没有,有什么替代方案?

merge apache-nifi
3个回答
1
投票

您可以增加“最小条目数”和“最大条目数”以适合您的用例,并将“最大垃圾箱年龄”增加到合适的时间。

您可以在此处参考合并内容的所有属性:https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.6.0/org。 apache.nifi.processors.standard.MergeContent/index.html

另外,你是在集群中使用nifi还是单独使用nifi?因为一个节点中的流文件无法与另一节点中的流文件合并。

例如,如果您使用具有 5 个节点的 nifi 集群,每个节点有 10 个流文件。使用合并内容处理器后,您将拥有 5 个文件。

如果您需要进一步帮助,请告诉我!


0
投票

在 MergeContent Processor 之前,您应该使用“单节点”负载平衡策略配置连接器,以便保证只有 1 个节点将处理碎片整理。


0
投票

我遇到了同样的问题,我有大约 7000 多个流程文件,我需要将它们合并为一个。前提是,我不知道流文件的确切数量是多少,所以我无法在 mergeContent 处理器的 Minimum Number of Entries 属性中指定该数字,以使其在合并后只有 1 个流文件。

在尝试了很多事情之后,包括尝试计算流文件的数量或在将它们发送到合并之前引起延迟,我终于在下面的 mergeContent 文档中找到了解决方案:

https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.6.0/org.apache.nifi.processors.standard.MergeContent/index。 html#:~:text=%20%27碎片整理%27%20算法%20合并%20碎片s%20that%20are%20linked%20by%20attributes%20back%20into%20a%20single%20cohesive%20FlowFile.%20The%20%27B在%2DPacking%20算法%27%20生成%20a%20FlowFile%20填充%20by%20任意%20选择%20FlowFiles

就这样吧!将“合并策略”属性设置为“碎片整理”并将“属性策略”属性设置为“合并策略”可以解决我的问题。

在我的所有流程文件中,它们具有共同的属性,现在合并到一个流程文件中。

最初的问题是 2019 年的,但我希望它能帮助其他人寻找答案。

© www.soinside.com 2019 - 2024. All rights reserved.