使用Kafka Streams进行自定义转换

时间:2017-12-15 06:35:23

标签: java apache-kafka etl apache-kafka-streams stream-processing

我一直在使用Apache Kafka实现ETL数据管道。我使用Kafka Connect进行提取和加载。

Connect将读取源数据并以JSON的形式编写Kafka主题实际数据。

在转换阶段,我想从Kafka主题中读取JSON数据,然后我需要根据一些自定义业务逻辑转换为SQL查询,然后需要写入输出Kafka主题。

截至目前,我编写了一个生产者 - 消费者应用程序,它从主题中读取转换,然后写入输出主题。

使用Kafka流API是否可以实现相同的目标?如果是,请提供一些样品。

1 个答案:

答案 0 :(得分:2)

结帐Kafka StreamsKSQL。 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等。