这个代码云邪分享的,已经实践,这里只是补充一点注意事项:
1,在文中的jar要下载了,直接复制地址,然后放入flink lib目录下,最后一定一定要重启Flink集群(不重启的后果就是报错找不到kafka,或者找不到mysql jdbc)
2,第二点是mysql的表,要自己去设置主键,要不然每次结果都是新增
3,还有你的环境可能是在window开发 linux运行,可以自己封装一下执行脚本,不用一定要用他的,举个例子:
1) source-generator.sh 脚本, 去读取log文件发送到kafka (你的集群一般都不用安装的吧)
2)执行脚本
仔细看脚本,我把 q1.sql放到了resources 目录下
4,项目里面用到一个包,放在了集群,实际依赖是 :
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-sql-connector-kafka_2.11</artifactId> <version>${flink.version}</version> <!--<scope>provided</scope>--> </dependency>
Flink 1.9 实战:使用 SQL 读取 Kafka 并写入 MySQL
原创: 伍翀(云邪) 云邪的博客 今天
上周六在深圳分享了《Flink SQL 1.9.0 技术内幕和最佳实践》,会后许多小伙伴对最后演示环节的 Demo 代码非常感兴趣,迫不及待地想尝试下,所以写了这篇文章分享下这份代码。希望对于 Flink SQL 的初学者能有所帮助。完整分享可以观看 Meetup 视频回顾 :https://developer.aliyun.com/live/1416
演示代码已经开源到了 GitHub 上:https://github.com/wuchong/flink-sql-submit
这份代码主要由两部分组成:1) 能用来提交 SQL 文件的 SqlSubmit 实现。2) 用于演示的 SQL 示例、Kafka 启动停止脚本、 一份测试数据集、Kafka 数据源生成器。
通过本实战,你将学到:
-
如何使用 Blink Planner
-
一个简单的 SqlSubmit 是如何实现的
-
如何用 DDL 创建一个 Kafka 源表和 MySQL 结果表
-
运行一个从 Kafka 读取数据,计算 PVUV,并写入 MySQL 的作业
-
设置调优参数,观察对作业的影响
SqlSubmit 的实现
笔者一开始是想用 SQL Client 来贯穿整个演示环节,但可惜 1.9 版本 SQL CLI 还不支持处理 CREATE TABLE 语句。所以笔者就只好自己写了个简单的提交脚本。后来想想,也挺好的,可以让听众同时了解如何通过 SQL 的方式,和编程的方式使用 Flink SQL。
SqlSubmit 的主要任务是执行和提交一个 SQL 文件,实现非常简单,就是通过正则表达式匹配每个语句块。如果是 CREA