【问题标题】:how to stream from kafka to cassandra and increment counters如何从 kafka 流式传输到 cassandra 并增加计数器
【发布时间】:2018-03-22 23:06:44
【问题描述】:

我有 apache 访问日志文件,我想在 cassandra 表中存储每个页面的访问次数(总计/每天/每小时)。

我正在尝试通过使用 kafka connect 从日志文件流式传输到 kafka 主题来做到这一点。为了增加 Cassandra 中的指标计数器,我可以再次使用 Kafka Connect 吗?否则这里应该使用哪个其他工具,例如kafka 流、spark、flink、kafka 连接等?

【问题讨论】:

标签: apache-spark cassandra apache-kafka apache-kafka-connect


【解决方案1】:

您正在谈论进行流处理,Kafka 可以做到这一点 - 使用 Kafka's Streams APIKSQL。 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 可以部署在集群中,等等。

【讨论】:

    【解决方案2】:

    这可以通过 Flink 轻松完成,无论是作为批处理作业还是流式作业,无论是否使用 Kafka(Flink 可以读取文件并写入 Cassandra)。使用 Flink 的 SQL api 可以轻松完成这种时间窗口聚合;见examples here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-14
      • 1970-01-01
      • 2023-03-26
      • 2016-05-03
      • 2021-11-26
      • 2019-05-22
      • 1970-01-01
      相关资源
      最近更新 更多