如何解决如果我们有多个并行运行的流文件,我们如何知道流何时完成?
我有一个要求,即我们有一个模板,该模板使用SQL作为源并将SQL作为目标,并且每个表的数据将超过100GB,因此此处模板将根据要迁移的表进行多次实例化,并且每个表都是划分为多个流文件。我们如何知道流程何时完成?由于这里将有多个流文件,因此我们无法在流文件到达最终处理器时对其进行总结。
我尝试使用SitetoSiteStatusReportingTask检查队列计数,但是它提供基于连接的计数,并且由于每个模板都有大量模板,因此很难为每个连接获取connectionid,然后进行连接。这里我们在报告任务时遇到了另一个问题,因为它提供了NIFI画布上可用的所有进程组的数据,如果所有模板都在运行,这将是巨大的数据,即使我使用avro模式仅获取队列计数和连接,也可能会影响性能。 ID。
能否请您提出一些想法并帮助我实现这一目标?
解决方法
您有多种解决方案:
1-您可以使用wait / notify duo处理器。
如果您不希望多个flowfile并行运行:
2-在队列上设置背压
3-指定组级别流文件并发(推荐,但仅限Nifi 1.12)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。