且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

实时计算 Flink 版 SQL 实践|学习笔记

更新时间:2022-09-02 15:39:43

开发者学堂课程【《实时数仓入门课程》实时计算 Flink 版 SQL 实践】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/807/detail/13887


实时计算 Flink 版 SQL 实践


内容简介:

一、Flink SQL 简介

1.关于 Flink SQL

2.基本操作

3.维表 Lookup Join

4. window Aggregation

5. Group Aggregation

 

二、Flink SQL 上手示例

1.示例场景、环境说明

2.示例1:数据清洗、维表关联

3.示例2:分钟小时、天级成交统计

4.示例小结

 

三、开发常见问题和解法

1.开发中常见的问题和解法

 

 

一、Flink SQL 简介

1.关于 Flink SQL

声明式:Flink 顶层 API 稳定易使用

流批统一:统一的开发体验语义一致性

自动优化:屏蔽流计算 State 复杂性,自动优 化 P lan AutoPilot 自动调优

应用广泛:数据集成,实时报表,实时风控

 

2. 基本操作

—— SELECT &WHERE 语法

 SELECT select_list FROM tableexpressionWHERE boolean_expression

—— SELECT 操作

 SELECT *FROM Orders;

——WHERE 条件

 SELECT order_id, trans anount FROM Orders WHERE trans amount 100 AND order_id IS NOT NULL;

——使用表达式、内置函数

 SELECT order_id, price trans_amount, DATE_FORMAT(gmt_create'yyyy-MM-dd HH: mm: S5') FROM Orders;

——使用自定义函数

 SELECT order_id, UDF_EXCHANGE _RATE(price, 'RMB, 'HKD') FROM Orders;

3.维表Lookup Join

4. window Aggregation

实时计算 Flink 版 SQL 实践|学习笔记

5. Group Aggregation

实时计算 Flink 版 SQL 实践|学习笔记


二、Flink SQL 上手示例

1.示例场景、环境说明

接入层数据

使用 SQL DataGen Connector 生成模拟电商交易数据

CREATE TEMPORARY TABLE 's orders'(

orderid BIGINT COMMENT'订单id,自增

auction_id BIGINT COMMENT'商品id,随机1~100000​​

userid BIGINT COMMENT'用户id,随机1~100000

transamount INT COMMENT'交易金额单位分,随机1~1000000

cate_id AS MOD(auction_id,100)+1 COMMENT'类目id,随机1~100​​

gmtcreate AS CURRENT_TIMESTAMP COMMENT订单创建时间​​

 )COMMENT 'mocked order source'

 WITH(

 'connector'='datagen'

2.示例1:数据清洗、维表关联

 

3.示例2:分钟小时、天级成交统计

 

4.示例小结

 

三、开发常见问题和解法

实时计算如何下手?

如何设定作业初始资源?

复杂作业如何调试?

作业如何性能调优?

 

实时计算如何下手?

1.从简单例子上手、多尝试

2.关注 ververica.cn 和 B 站 Flink 公号分享内容

3.参考 Aliyun 行业解决方案

 

复杂作业如何调试?

1.开发调试由简入繁

2.借助调试输出、分段验证

3.实时计算 Flink 的调试功能

 

作业初始资源设置、如何调优?

1.小并发试跑、性能摸底

2.运行指标,关注数据倾斜、GC、外部瓶颈

3.实时计算 Flink 的 AutoPilot 功能