如何从流卡夫卡到卡桑德拉和增量计数器

问题描述:

我有Apache的访问日志文件,我想每个页面的存储访问数(总/每天/每小时)在卡桑德拉表。如何从流卡夫卡到卡桑德拉和增量计数器

我试图通过使用连接卡夫卡从日志文件流的卡夫卡话题做。为了增加Cassandra中的度量指标,我可以再次使用Kafka Connect吗?否则,这里应该使用哪种其他工具,例如kafka流,火花,flink,kafka连接等?

+2

欢迎计算器!请看看在[如何提问](https://*.com/help/asking),具体[如何创建一个最小的,完整的,并且可验证的示例](https://*.com导游/帮助/ MCVE) – AesSedai101

你说的做流处理,其中卡夫卡可以做的 - 要么Kafka's Streams API,或KSQL。 KSQL运行在Kafka Streams之上,为您提供了一种非常简单的方法来构建您所谈论的聚合类型。

下面是KSQL做数据流的聚集的例子

SELECT PAGE_ID,COUNT(*) FROM PAGE_CLICKS WINDOW TUMBLING (SIZE 1 HOUR) GROUP BY PAGE_ID 

多见于:https://www.confluent.io/blog/using-ksql-to-analyse-query-and-transform-data-in-kafka

您可以KSQL的输出,实际上只是一个卡夫卡的话题,并流,其通过卡夫卡连接例如Elasticsearch,Cassandra等等。你提到其他流处理工具,它们也是有效的 - 部分取决于现有技能和语言偏好(例如,Kafka Streams是Java库,KSQL是...... KSQL,Spark Streaming有Python和Java等) ,但也部署偏好。 Kafka Streams只是一个在现有应用程序中部署的Java库。 KSQL可以在群集中部署,依此类推。

这可以用弗林克轻松完成,无论是作为一个批次或流工作,有或没有卡夫卡(弗林克可以从文件中读取和写入卡桑德拉)。这种时间窗口聚合很容易用Flink的SQL api完成;请参阅examples here