Flink SQL是什么?
- 声明式 API:Flink 最高层的AP1,易于使用
- 自动优化:屏蔽 State 的复杂性,自动做到最优处理
- 流批统一:一样的SQL,一样的结果
- 应用广泛:ETL,统计分析,实时报表,实时风控
Flink 本身是批流统一的处理框架,所以Table API 和SQL,就是批流统一的上层处理API
- 基本结构 # 与流式处理的程序结构十分相似
- 创建 TableEnvironment
- 配置 TableEnvironment
- 创建表 # 配置水位线
- 表的查询 Table API
- 表的查询 SQL
- 输出表 # 输出到文件. kafka. ES. mysql
概念
1. 动态表 Dynamic table
2. 时间特性 Time Attributes
3. 处理时间特性 Processing Time
4. 事件时间特性 Event Time
5. 窗口
1. 分组窗口 Group Windows # 根据时间或行计数间隔,将行聚合到有限的组( Group )中,并对每个组的数据执行一次聚合函数
1. 滚动窗口
2. 滑动窗口
3. 会话窗口
2. Over Windows # 针对每个输入行,计算相邻行范围内的聚合
1. 有界
2. 无界
6. 函数
7. 用户自定义函数 UDF
8. 标量函数 Scalar Functions
9. 表函数 Table Functions
10. 聚合函数 Aggregate Functions
11. 表聚合函数 Table Aggregate Functions
12. 更新模式
1. 追加( Append )模式
2. 撤回( Retract )模式
3. 更新插入( Upsert )模式
开发案例
参考链接