Apache storm 使用storm连接来自两个不同数据库的两个表

Apache storm 使用storm连接来自两个不同数据库的两个表,apache-storm,Apache Storm,我是《风暴》的新手。如果我可以使用storm合并/连接来自两个不同dbs的两个表(当然,两个表有某种外键关系,只是碰巧存在于不同的dbs/系统中),有没有想法如何构建拓扑?比如有两个分开的喷口定期从两个dbs读取数据,并有一个螺栓进行连接工作 这是否是storm的正确用例 任何想法都很感激 就像有两个分开的喷口周期性地从两个dbs读取数据,并且有一个螺栓来完成连接工作 是的,这是很有可能的。Storm可以有多个喷口。而且一个bolt会消耗任意数量的输入流,进行一些处理,并可能发出新的流。通常最好

我是《风暴》的新手。如果我可以使用storm合并/连接来自两个不同dbs的两个表(当然,两个表有某种外键关系,只是碰巧存在于不同的dbs/系统中),有没有想法如何构建拓扑?比如有两个分开的喷口定期从两个dbs读取数据,并有一个螺栓进行连接工作

这是否是storm的正确用例

任何想法都很感激

就像有两个分开的喷口周期性地从两个dbs读取数据,并且有一个螺栓来完成连接工作

是的,这是很有可能的。Storm可以有多个
喷口
。而且
一个bolt会消耗任意数量的输入流,进行一些处理,并可能发出新的流。
通常最好让您的喷口从Kafka或RabbitMQ之类的队列中读取(您可以找到喷口与大多数排队系统的集成)。因此,在这种情况下,您可以向队列提供来自DB的数据,然后让spout使用相同的数据

更新:

下面是一个关于storm并行如何工作的非常好的例子

这可能是storm的一个很好的用途,但它实际上取决于您的数据集。如果在单独的DBMS中有两个表,您希望将它们连接并存储在第三个位置(DBMS或其他位置),Storm只有在这是流式连接时才有意义,也就是说,这两个表经常被写入,并且您希望将最近写入到一起的内容连接起来

而且,如果这是针对相对较大和较高的容量,那么几乎不用说,您应该只使用Storm将带来的复杂性

如果它很小,使用传统的ETL工具可能会更好,即使这只是为了访问两个数据库并合并数据而编写的一些代码


如果数据集很大并且需要在超过一个短的时间范围内进行连接,我会考虑另一种方式,例如使用从两个DBS中拉取数据并将连接扩展到一个集群上的Map Reduce作业。两个问题:1。螺栓是否会承受很大的压力,因为所有的发射都会流向一个螺栓,因为它是一个连接,我想很难将一个连接并行到多个螺栓。2.是否有任何现有的方法将db数据发送到消息队列,这会给管道增加一层复杂性吗?据我所知。。1.可能只有一个螺栓,但可以使用storm并行运行同一螺栓的多个实例。2.您是否正在寻找一个能够正常工作的现有项目?是的,如果有一个现有项目能够正常工作:)目前,我正在编写一个针对喷口内部原始dbs的定期查询,不太确定这样做是否正确。