开发者学堂课程【《实时数仓入门课程》:实时计算 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 tableexpression
【
WHERE 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
5. Group Aggregation
二、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 功能