如何从kafka流到cassandra和增量计数器

ryevplcw  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(413)

我有apache访问日志文件,我想在cassandra表中存储每个页面的访问计数(total/daily/hourly)。
我正在尝试通过使用kafka connect将日志文件流传输到kafka主题。为了在cassandra中增加度量计数器,我可以再次使用kafka connect吗?否则,此处还应使用哪种工具,如Kafka流、spark、flink、Kafka连接等?

mkshixfv

mkshixfv1#

你说的是做流处理,Kafka可以做的-要么用Kafka的流api,要么用ksql。ksql运行在kafka流之上,它提供了一种非常简单的方法来构建您所讨论的聚合。
下面是一个在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的输出,它实际上只是一个kafka主题,并通过kafka连接流式传输,例如到elasticsearch、cassandra等等。
你提到其他流处理工具,它们也是有效的-部分取决于现有的技能和语言首选项(例如,kafka streams是java库,ksql是…ksql,spark streaming有python和java等),但也取决于部署首选项。kafka streams只是一个要在现有应用程序中部署的java库。ksql可以部署在集群中,以此类推。

eagi6jfj

eagi6jfj2#

这可以很容易地用flink来完成,无论是批处理还是流式处理,也不管有没有kafka(flink可以读取文件并写入cassandra)。这种时间窗聚合很容易用flink的sqlapi完成;请看这里的示例。

相关问题