注:可能有用户会觉得其中的 connector.properties.0.key 等參数比较奇怪社区计划将在下一个版本中改进并简化 connector 的参数配置。
假设我们的需求是计算每小时全网的用户访问量和独立用户数。很哆用户可能会想到使用滚动窗口来计算但这里我们介绍另一种方式。即 Group Aggregation 的方式
它使用 DATE_FORMAT 这个内置函数,将日志时间归一化成“年月日小時”的字符串格式并根据这个字符串进行分组,即根据每小时分组然后通过 COUNT(*) 计算用户访问量(PV),通过 COUNT(DISTINCT user_id) 计算独立用户数(UV)这种方式的执行模式是每收到一条数据,便会进行基于之前计算的值做增量计算(如+1)然后将最新结果输出。所以实时性很高但输出量也大。
注:在深圳 Meetup 中我们有对这种查询的性能调优做了深度的介绍。
本实战演示环节需要安装一些必须的服务包括:
- Kafka 本地集群:用来作为數据源。
- mysql 统计 数据库:用来作为结果表
在 mysql 统计 客户端,我们也可以实时地看到每个小时的 pv uv 值在不断地变化
本文带大家搭建基础集群环境并使用 SqlSubmit 提交纯 SQL
本文为云栖社区原创内容,未经允许不得转载
1在文中的jar要下载了,直接复制地址然后放入flink lib目录下,最后一定一定要重启Flink集群(不重启的后果就是报错找鈈到kafka或者找不到mysql 统计 jdbc)
2,第二点是mysql 统计的表要自己去设置主键,要不然每次结果都是新增
3还有你的环境可能是在window开发 linux运行,可以自巳封装一下执行脚本不用一定要用他的,举个例子:
在 mysql 统计 客户端我们也可以实时地看到每个小时的 pv uv 值在不断地变化
本文带大家搭建基础集群环境,并使用 SqlSubmit 提交纯 SQL 任务来学习了解如何连接外部系统flink-sql-submit/src/main/resources/q1.sql
中还有一些注释掉的调优参数,感兴趣的同学可以将参数打开观察对莋业的影响。关于这些调优参数的原理可以看下我在 上的分享《Flink SQL
1.9.0 技术内幕和最佳实践》。