Flink SQL _ Table 介绍与实战 | 学习笔记(四)

简介: 快速学习 Flink SQL _ Table 介绍与实战

开发者学堂课程【开源 Flink 极客训练营Flink SQL _ Table 介绍与实战】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/760/detail/13341


Flink SQL _ Table 介绍与实战


这里之所以需要求最大的时间,同时又按日期+时间作为主键写入到 Elasticsearch,是因为在计算累积UV数。

图片49.png

INSERT INTO cumulative.uv

SELECT date. str , MAX(time. str), COUNT(DISTINCT user. 1d) as uv

FROM (

SELECT

DATE_ FORMAT(ts, yyyy-MM-dd') as date. ,str,

SUBSTR(DATE_ FORHAT(ts, 'HH:mn'),1,4)|| '0' as time_ str,

user_ id

FRON user_ behavior)

GROUP BY date_ str;

精确的分钟

||字符串连接的函数

提交上述查询后,在Kibana中创建curulative. Juv 的index pattern,然后在Dashboard中创建一-个"Line"折线图,

选择cumulative_ uv索引,按照如下截图中的配置(左侧)画出累计独立用户数曲线,并保存。

Flink对count做了很多优化

在Elasticsearch中,用 date. str , MAX(time. str)做分组

在query中,根据日期date_ str做分组,quer不断刷新当前时刻最大的uv值

图片50.png

提交后,查看query

有两个节点,在index pattern中加入做格式化

图片51.png

返回Dashboard,选择添加新的视图,选择连线图

y轴累计独立访问用户数,取uv的值,x轴每十分钟的点。,选择terms、time_str.keyword、Alphabetical、150

图片52.png

单调递增曲线,在凌晨曲线斜率较为平缓,将图加入Dashboard中

顶级类目排行榜

最后一个可视化是类目排行榜,从而了解哪些类目是支柱类目。不过由于源数据中的类目分类太细(约5000

个类目)。对于排行榜意义不大,因此希望能将其归约到顶级类目。所以在mysql容器中预先准备了子类目与

顶级类目的映射数据,用作维表。

在SQL Cu中创建MySQL表,后续用作维表查询。

CREATE TABLE category_ dim (

sub_ category_ .id BIGINT,

parent_ .category. name STRING

) WITH (

'connector'='jdbc".

'url'='jdbc :mysql://mysql:3306/flink',

'table-nane'= ' category',

'username' = 'root',

'password' = ' 123456'

'lookup.cache.max-rows" = '5208",

'lookup. cache.ttl' = '10min'

);

进入MySQL容器中,

输入cd flink-sql-demo进入

输入show tables;有一个category的表如下图:

图片53.png

输入select * from category limit 10;如下图:

图片54.png

同时再创建一个Elasticsearch表,用于存储类目统计结果。

CREATE TABLE top. .category (

category. name STRING PRIHARY KEY NOT ENFORCED,

Buy_cnt BIGINT

) WITH (

'connector'='elasticsearch-7',

'hosts'='http://elast icsearch: 9200' ,

'index' ='top. category

);

图片55.png 

第一步通过维表关联,补全类目名称。使用CREATE'IEW将该查询注册成一个视图,简化逻辑。维表关联使用temporal join语法。docs-release-1.11/dev/table/streaming/joins.html#join-with-a-temporal-table

CREATE VIEW rich_ user_ behavior AS

SELECT

U.user_id,U.item_id,U.behavior,C.parent_category_name as category_name

FROM user_behavior AS U LEFT JOIN category_dim FOR SYSTEN_TIME AS 0F U.proctine AS C

ON U.category_id=C.sub_category_id;

最后根据类目名称分组,统计出buy 的事件数,并写入Elasticsearch中。

INSERT INTO top_category

SELECT category_name, COUNT(*) buy_cnt

FROM rich_ user_ behavior

WHERE behavior = 'buy'

GROUP BY category_name;

图片56.png

查询的id是类目的id,查询的名字是类目的名字

提交上述查询后,在Kibana中创建top_category的index patter,然后在Dashboard中创建一个”Horizontal

Bar”条形图,选择top_category 索引,按照如下截图中的配置(左侧) 画出类日排行榜,并保存。

图片57.png

两个节点做类目的统计量分析,建立索引,添加类目可视化图,y轴统计类目成交量,x轴类目,根据成交量排序倒序

图片58.png

衣服、鞋子的成交量高,保存到Dashboard中

添加目标可视化的图

图片59.png

保存到Dashboard中,可以自由拖拽,增加美观度

图片60.png

相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
4月前
|
SQL 人工智能 JSON
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
简介:本文整理自阿里云高级技术专家李麟在Flink Forward Asia 2025新加坡站的分享,介绍了Flink 2.1 SQL在实时数据处理与AI融合方面的关键进展,包括AI函数集成、Join优化及未来发展方向,助力构建高效实时AI管道。
845 43
|
4月前
|
SQL 人工智能 JSON
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
本文整理自阿里云的高级技术专家、Apache Flink PMC 成员李麟老师在 Flink Forward Asia 2025 新加坡[1]站 —— 实时 AI 专场中的分享。将带来关于 Flink 2.1 版本中 SQL 在实时数据处理和 AI 方面进展的话题。
308 0
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
|
7月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
在数字化转型中,企业亟需从海量数据中快速提取价值并转化为业务增长动力。5月15日19:00-21:00,阿里云三位技术专家将讲解Kafka与Flink的强强联合方案,帮助企业零门槛构建分布式实时分析平台。此组合广泛应用于实时风控、用户行为追踪等场景,具备高吞吐、弹性扩缩容及亚秒级响应优势。直播适合初学者、开发者和数据工程师,参与还有机会领取定制好礼!扫描海报二维码或点击链接预约直播:[https://developer.aliyun.com/live/255088](https://developer.aliyun.com/live/255088)
565 35
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
|
7月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
235 12
|
3月前
|
算法 数据挖掘 数据库
通过 SQL 快速使用 OceanBase 向量检索学习笔记
通过 SQL 快速使用 OceanBase 向量检索学习笔记
|
9月前
|
SQL 运维 监控
SQL查询太慢?实战讲解YashanDB SQL调优思路
本文是Meetup第十期“调优实战专场”的第二篇技术文章,上一篇《高效查询秘诀,解码YashanDB优化器分组查询优化手段》中,我们揭秘了YashanDB分组查询优化秘诀,本文将通过一个案例,助你快速上手YashanDB慢日志功能,精准定位“慢SQL”后进行优化。
|
3月前
|
SQL 数据库
SQL 学习笔记 - 多表关系与多表查询
数据库多表关系包括一对多、多对多和一对一,常用外键关联。多表查询方式有隐式/显式内连接、外连接、子查询等,支持别名和条件筛选。子查询分为标量、列、行、表子查询,常用于复杂查询场景。
|
5月前
|
SQL 消息中间件 Kafka
Flink SQL 详解:流批一体处理的强大工具
Flink SQL 是 Apache Flink 提供的 SQL 引擎,支持流批一体处理,统一操作流数据与批数据,具备高性能、低延迟、丰富数据源支持及标准 SQL 兼容性,适用于实时与离线数据分析。
917 1
|
10月前
|
SQL 存储 API
Flink Materialized Table:构建流批一体 ETL
本文整理自阿里云智能集团 Apache Flink Committer 刘大龙老师在2024FFA流批一体论坛的分享,涵盖三部分内容:数据工程师用户故事、Materialized Table 构建流批一体 ETL 及 Demo。文章通过案例分析传统 Lambda 架构的挑战,介绍了 Materialized Table 如何简化流批处理,提供统一 API 和声明式 ETL,实现高效的数据处理和维护。最后展示了基于 Flink 和 Paimon 的实际演示,帮助用户更好地理解和应用这一技术。
849 7
Flink Materialized Table:构建流批一体 ETL
|
9月前
|
消息中间件 JSON 数据库
探索Flink动态CEP:杭州银行的实战案例
探索Flink动态CEP:杭州银行的实战案例
337 5

热门文章

最新文章