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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
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学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
1月前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
143 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
3月前
|
SQL 存储 API
Flink实践:通过Flink SQL进行SFTP文件的读写操作
虽然 Apache Flink 与 SFTP 之间的直接交互存在一定的限制,但通过一些创造性的方法和技术,我们仍然可以有效地实现对 SFTP 文件的读写操作。这既展现了 Flink 在处理复杂数据场景中的强大能力,也体现了软件工程中常见的问题解决思路——即通过现有工具和一定的间接方法来克服技术障碍。通过这种方式,Flink SQL 成为了处理各种数据源,包括 SFTP 文件,在内的强大工具。
206 15
|
2天前
|
消息中间件 JSON 数据库
探索Flink动态CEP:杭州银行的实战案例
本文由杭州银行大数据工程师唐占峰、欧阳武林撰写,介绍Flink动态CEP的定义、应用场景、技术实现及使用方式。Flink动态CEP是基于Flink的复杂事件处理库,支持在不重启服务的情况下动态更新规则,适应快速变化的业务需求。文章详细阐述了其在反洗钱、反欺诈和实时营销等金融领域的应用,并展示了某金融机构的实际应用案例。通过动态CEP,用户可以实时调整规则,提高系统的灵活性和响应速度,降低维护成本。文中还提供了具体的代码示例和技术细节,帮助读者理解和使用Flink动态CEP。
218 2
探索Flink动态CEP:杭州银行的实战案例
|
9天前
|
SQL 存储 缓存
Flink SQL Deduplication 去重以及如何获取最新状态操作
Flink SQL Deduplication 是一种高效的数据去重功能,支持多种数据类型和灵活的配置选项。它通过哈希表、时间窗口和状态管理等技术实现去重,适用于流处理和批处理场景。本文介绍了其特性、原理、实际案例及源码分析,帮助读者更好地理解和应用这一功能。
74 14
|
2月前
|
SQL 大数据 API
大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例
大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例
60 0
|
3月前
|
SQL 大数据 数据处理
奇迹降临!解锁 Flink SQL 简单高效的终极秘籍,开启数据处理的传奇之旅!
【9月更文挑战第7天】在大数据处理领域,Flink SQL 因其强大功能与简洁语法成为开发者首选。本文分享了编写高效 Flink SQL 的实用技巧:理解数据特征及业务需求;灵活运用窗口函数(如 TUMBLE 和 HOP);优化连接操作,优先采用等值连接;合理选择数据类型以减少计算资源消耗。结合实际案例(如实时电商数据分析),并通过定期性能测试与调优,助力开发者在大数据处理中更得心应手,挖掘更多价值信息。
52 1
|
3月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
5月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
135 13
|
5月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
5月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
73 6