随着Flink 1.11的发布, Flink SQL的功能和生态日渐强大。Flink内置了Kafka/JDBC/ElasticSearch/HBase/Filesystem等众多connecter,并支持常用的数据格式如json/avro/csv等,能够很方便的帮助用户通过SQL注册相对应的source表/sink表,利用Flink SQL进行计算,完成整个实时job的开发。相对于DataStream API或Table API,Flink SQL极大降低了Job开发复杂度,提升了开发效率。本系列文章将会介绍Flink SQL以及各connecter的使用实践,本文作为该系列的第一篇,主要介绍Flink SQL中Kafka的使用。 Kafka作为使用最广泛的消息队列,几乎成为各个互联网公司的标配,producer 将数据写入topic, 下游consumer通过订阅topic进行计算。Kafka在实时流计算中占居着非常重要的地位。
Flink SQL Kafka Connector使用实战
在本文示例中,我们使用Flink SQL消费Kafka进行窗口计算后结果再写回Kafka,通过Druid消费Kafka的数据进行OLAP Cube构建,最后Superset进行可视化;Kafka + Flink + Druid 的组合也是目前比较流行实时OLAP方案之一。完整链路如下:

- 注册Flink table