我有apache访问日志文件,我想在cassandra表中存储每个页面的访问计数(总数/每天/每小时)。
我正在尝试使用kafka连接从日志文件流到kafka主题。为了在Cassandra中增加指标计数器,我可以再次使用Kafka Connect吗?否则,这里应该使用哪些其他工具,例如kafka streams,spark,flink,kafka connect等?
发布于 2017-10-11 19:19:47
你说的是流处理,Kafka可以做到这一点--无论是使用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的输出,它实际上只是一个Kafka主题,并通过Kafka Connect将其流式传输到Elasticsearch、Cassandra等。
您提到了其他流处理工具,它们也是有效的-部分取决于现有的技能和语言偏好(例如,Kafka Streams是Java库,KSQL是…KSQL,Spark Streaming有Python以及Java等),但也有部署首选项。Kafka Streams只是一个可以部署到现有应用程序中的Java库。KSQL可以在集群中部署,依此类推。
发布于 2017-10-16 03:17:56
这可以使用Flink轻松完成,无论是批处理作业还是流作业,也可以使用Kafka或不使用Kafka (Flink可以从文件读取和写入Cassandra)。使用Flink的SQL api可以轻松完成这种时间窗口聚合;请参阅examples here。
https://stackoverflow.com/questions/46685411
复制相似问题