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

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 快速学习 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轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
4天前
|
SQL 自然语言处理 数据库
NL2SQL实践系列(2):2024最新模型实战效果(Chat2DB-GLM、书生·浦语2、InternLM2-SQL等)以及工业级案例教学
NL2SQL实践系列(2):2024最新模型实战效果(Chat2DB-GLM、书生·浦语2、InternLM2-SQL等)以及工业级案例教学
NL2SQL实践系列(2):2024最新模型实战效果(Chat2DB-GLM、书生·浦语2、InternLM2-SQL等)以及工业级案例教学
|
8天前
|
SQL 数据库
数据库SQL语言实战(二)
数据库SQL语言实战(二)
|
15天前
|
SQL 存储 关系型数据库
【MySQL实战笔记】02.一条SQL更新语句是如何执行的-2
【4月更文挑战第5天】两阶段提交是为确保`redo log`和`binlog`逻辑一致,避免数据不一致。若先写`redo log`, crash后数据可能丢失,导致恢复后状态错误;若先写`binlog`,crash则可能导致重复事务,影响数据库一致性。一天一备相较于一周一备,能缩短“最长恢复时间”,但需权衡额外的存储成本。
16 1
|
1月前
|
SQL 资源调度 Oracle
Flink CDC产品常见问题之sql运行中查看日志任务失败如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
1月前
|
SQL 关系型数据库 MySQL
Flink 提供了一种名为 Flink SQL 的查询语言,它支持多种数据库之间的 DDL 语句转换
【2月更文挑战第18天】Flink 提供了一种名为 Flink SQL 的查询语言,它支持多种数据库之间的 DDL 语句转换
171 2
|
1月前
|
SQL 存储 Apache
在 Apache Flink SQL 中,并没有内置的 GROUP_CONCAT 函数
【2月更文挑战第16天】在 Apache Flink SQL 中,并没有内置的 GROUP_CONCAT 函数
189 2
|
1月前
|
SQL 分布式计算 HIVE
基于 Kyuubi 实现分布式 Flink SQL 网关
本文整理自网易互娱资深开发工程师、Apache Kyuubi Committer 林小铂的《基于 Kyuubi 实现分布式 Flink SQL 网关》分享。
104452 64
基于 Kyuubi 实现分布式 Flink SQL 网关
|
2月前
|
SQL 数据采集 JSON
弱结构化日志 Flink SQL 怎么写?SLS SPL 来帮忙
弱结构化日志 Flink SQL 怎么写?SLS SPL 来帮忙
125164 136
|
2月前
|
SQL 监控 API
Flink SQL支持写判断语句
【2月更文挑战第8天】Flink SQL支持写判断语句
236 12
|
2月前
|
SQL 消息中间件 Kafka
flink问题之做实时数仓sql保证分topic区有序如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
705 3

热门文章

最新文章