我一直在使用Apache Kafka实现ETL
数据管道。我使用Kafka Connect进行提取和加载。
Connect将读取源数据并以JSON的形式编写Kafka主题实际数据。
在转换阶段,我想从Kafka主题中读取JSON数据,然后我需要根据一些自定义业务逻辑转换为SQL查询,然后需要写入输出Kafka主题。
截至目前,我编写了一个生产者 - 消费者应用程序,它从主题中读取转换,然后写入输出主题。
使用Kafka流API是否可以实现相同的目标?如果是,请提供一些样品。
答案 0 :(得分:2)
结帐Kafka Streams或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等。