使用Storm bolt或使用MongoDB的Spark-streaming来丰富数据

时间:2018-04-18 14:24:07

标签: mongodb apache-kafka spark-streaming apache-storm

我想创建一个Storm Spout,它从Apache Kafka的主题读取数据,并将此数据发送到连接到MongoDB的Storm bolt,并查询我从Kafka收集的消息以丰富数据。例如:我有一个personID(我通过来自Kafka的消息)并且我想使用此personID查询MongoDB中的人员地址。在我的MongoDB集合中,每个文档都有personID和地址。

有人可以给我一个例子吗?使用Spark-streaming的一个例子也非常棒。

1 个答案:

答案 0 :(得分:1)

我会这样做:

  1. 所有数据流式传输到Kafka,包括MongoDB丰富源(地址等)。您可以使用Kafka Connect(Apache Kafka的一部分)来执行此操作。看看这篇文章:Streaming Data from MongoDB into Kafka with Kafka Connect and Debezium
  2. 使用Kafka StreamsKSQL执行数据扩充。 Kafka Streams是Apache Kafka的一部分,是一个Java API。 KSQL运行在Kafka Streams之上,并为您提供一个SQL接口来声明您的流转换。您可以看到一个示例,包括联接in this article

    1. KSQL introduction
    2. Kafka Streams introduction
  3. 或者,如果要将生成的丰富数据存储在其他位置,请使用Kafka Connect将其从Kafka主题流式传输到目标。