从Kafka实时流式传输数据到Cassandra

9

如何将Kafka中的日期写入Cassandra是最佳方式?我期望这已经是一个解决的问题,但似乎没有标准的适配器。许多人似乎在使用Storm从Kafka读取数据,然后将其写入Cassandra,但是对于简单的ETL操作,Storm似乎有点过度。


只是更新一下——我们选择了 Spark Streaming,目前为止效果不错。现在正在测试 DataStax Spark。 - EugeneMi
1
此外,Kafka 3.0 将拥有 Kafka Connect——一个构建连接器的框架。最终他们可能也会推出一个 C* 连接器。正如我之前所述,Spark Streaming 对我们来说非常好用。易于使用,并且为您处理了容错和可扩展性问题。 - EugeneMi
2个回答

5
我们在IT技术中频繁使用Kafka和Cassandra,通过Storm处理。我们选择Storm的原因是:
- 在消息结果到达Cassandra之前,通常需要进行许多分布式处理(节点间),而Storm的Bolt拓扑结构非常适合这种情况。 - 我们不需要自己维护Kafka的消费者状态(偏移量)- 当Storm确认了所有原始消息后,Storm-Kafka连接器会为我们完成这个任务。 - Storm天生就能让消息处理分布在各个节点上。
否则,如果只是一个非常简单的情况,您可以直接从Kafka读取消息并将结果写入Cassandra,而无需借助Storm。

1
谢谢!Storm 在哪里持久化 Kafka 的偏移量?如果在 Cassandra 中处理的数据和偏移量不在同一事务中存储,您能保证恰好一次消息处理吗?此外,您是否研究过 Spark Streaming? - EugeneMi
在我们的特定情况下,它是“至少一个”保证。这很好 - 我们将大多数处理操作设计为幂等的。我听说过Storm Trident中的“仅一次”保证,但它是微批处理,所以是Spark Streaming。 - viktortnk

1
最近发布的Kafka版本引入了连接器概念,以支持源和汇作为设计中的一等概念。因此,您不需要任何流媒体框架来移动数据进出Kafka。这是一个适用于Kafka的Cassandra连接器,您可以使用:https://github.com/tuplejump/kafka-connect-cassandra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接