首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QueryDatabaseTable Nifi处理器从mysql数据库中获取重复行。

QueryDatabaseTable Nifi处理器从mysql数据库中获取重复行。
EN

Stack Overflow用户
提问于 2018-01-17 06:37:51
回答 2查看 1.2K关注 0票数 0

QueryDatabaseTable2节点集群上两次从Mysql表中获取行。当将执行设置配置到所有节点时,获取进程本身并不是分布式的。每个节点都获取类似的数据,这不是我所需要的理想输出。无论如何将其转换为主节点,都可以很好地工作,但是单个节点要承担整个数据获取过程的负担,这就违背了分布式计算的要求。有解决办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-17 13:32:57

QueryDatabaseTable被设计为只在主节点上运行,只有一个任务,它只进行一次获取,而不是分布式解决方案。对于集群中的并行/分布式抓取,您需要以下内容:

GenerateTableFetch -> RemoteProcessGroup ->输入端口-> ExecuteSQL

应该将GenerateTableFetch设置为只对一个任务在主节点上执行。它执行QueryDatabaseTable所做的“前半部分”操作,方法是生成SQL语句以获取指定大小的行的批次。但它不会去取东西。

相反,您可以将SQL语句发送到指向同一集群上的RemoteProcessGroup (RPG)的输入端口。这将在NiFi集群中的节点之间分发SQL语句。

每个节点上的ExecuteSQL处理器将获得要执行的SQL语句的子集,从而在集群中并行执行fetch。注意,这个流的其余部分将并行执行,稍后您将无法加入结果,但听起来似乎并不是您想要的结果。

票数 1
EN

Stack Overflow用户

发布于 2018-01-17 07:20:14

rdbms (mysql)不属于分布式计算。

因此,最好只在主节点上摄取这些源的数据。

但是,在摄入之后,您可以拆分数据并将其分布到整个nifi集群中。

参见本文https://community.hortonworks.com/articles/16120/how-do-i-distribute-data-across-a-nifi-cluster.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48294976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档