我有apache访问日志文件,我想在cassandra表中存储每个页面的访问计数(total/daily/hourly)。我正在尝试通过使用kafka connect将日志文件流传输到kafka主题。为了在cassandra中增加度量计数器,我可以再次使用kafka connect吗?否则,此处还应使用哪种工具,如Kafka流、spark、flink、Kafka连接等?
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可以部署在集群中,以此类推。
eagi6jfj2#
这可以很容易地用flink来完成,无论是批处理还是流式处理,也不管有没有kafka(flink可以读取文件并写入cassandra)。这种时间窗聚合很容易用flink的sqlapi完成;请看这里的示例。
2条答案
按热度按时间mkshixfv1#
你说的是做流处理,Kafka可以做的-要么用Kafka的流api,要么用ksql。ksql运行在kafka流之上,它提供了一种非常简单的方法来构建您所讨论的聚合。
下面是一个在ksql中聚合数据流的示例
更多信息请访问: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可以部署在集群中,以此类推。
eagi6jfj2#
这可以很容易地用flink来完成,无论是批处理还是流式处理,也不管有没有kafka(flink可以读取文件并写入cassandra)。这种时间窗聚合很容易用flink的sqlapi完成;请看这里的示例。