FLINK SQL

1、前言

2、基础概念篇

SQL&Table API 简介及运行环境

  • 简介
  • 运行环境

SQL&Table API 的基本概念及常用API

  • 一个SQL/Table API任务的代码结构
  • SQL上下文:TableEnvironment
  • SQL表概念
  • SQL临时表、永久表
  • SQL外部表、试图VIEW
  • 一个SQL查询案例
  • TableEnvironment常用API
  • SQL与DataStream API的转换

SQL数据类型

  • 原子数据类型
  • 复合数据类型
  • 用户自定义数据类型

SQL动态表&连续查询

  • SQL 应用到流处理思路
  • 流批处理的异同点及将SQL应用于流处理核心解决的问题
  • SQL流处理输入:输入流映射为SQL动态输入表
  • SQL流处理计算:实时处理底层技术-SQL连续查询
  • SQL流处理实际应用:动态表&连续查询技术的两个实战案例
  • SQL连续查询的两种类型:更新(Update)查询&追加(Append)查询
  • SQL流处理的输出:动态输出表转化为输出数据
  • 补充知识:SQL与关系代数

SQL时间属性

  • Flink三种时间属性简介
  • Flink三种时间属性应用场景
  • SQL指定时间属性两种方式
  • SQL事件时间案例
  • SQL处理时间案例

SQL时区问题

  • SQL时区解决的问题
  • SQL时间类型
  • 时区参数生效的SQL时间函数
  • 事件时间和时区应用案例
  • 处理时间和时区应用案例
  • SQL时间函数返回在流批任务中的异同

3、SQL语法篇

DDL

  • CREATE:建表、库、函数
  • DROP:删表、库、函数
  • ALTER:该表、库、函数
  • Connector:数据源、数据汇连接器
  • Format:数据源、数据汇中的数据序列化方式

DML

  • WITH...AS
  • SELECT & WHERE:ETL、字段标准化
  • SELECT DISTINCT:去重
  • 窗口聚合
    • TUMBLE:滚动窗口
    • HOP:滑动窗口
    • SESSION 窗口
    • CUMULATE:渐进式窗口
    • Window TVF
    • GROUPING SETS:自定义维度组合
  • Group聚合
    • GROUPING SETS:自定义维度组合
    • ROLLUP:维度上卷组合
    • CUBE:全维度组合
  • Over聚合
  • Joins
    • Regular Joins
      • Inner Join
      • Left Join
      • Right Join
      • Full Join
    • Interval Joins:时间区间Join
    • Temporal Joins:快照Join
      • Versioned Table
      • 事件时间Temporal Join
      • 处理时间Temporal Join
    • Lookup Join:维度Join
    • Array Expansion:维度炸开(列转行)
    • Table Function:表函数
      • Inner Join
      • Left Join
  • Set Operations:聚合操作
    • UNION:聚合合并
    • INTERSECT:交集
    • EXCEPT:差集
    • IN:IN子查询
    • EXISTS
  • ORDER BY:排序
  • LIMIT
  • TopN:row_number排行榜
  • Window TopN:窗口内TopN
  • Dedpulication:去重

其他子句

  • EXPLAIN:执行计划
  • USE:使用Catalog、库、Module
  • SHOW
  • LOAD\UNLOAD:加载、卸载Module
  • SET\RESET:设置、重置执行环境配置
  • SQL Hints

UDF

  • 系统内置UDF
  • UDF:一对一
  • UDAF:多对一
  • UDTF:一对多
  • UDTAGG:多对多

4、SQL UDF篇

SQL函数的归类

  • 系统(内置)函数、Catalog函数
  • 临时函数、持久化函数

SQL函数的引用方式

SQL函数的解析顺序

系统内置函数

SQL自定义函数(UDF)

开发UDF之前的须知事项

  • 集成UDF基类
  • 实现UDF执行逻辑函数
  • 注意UDF入参、出参类型推导
  • 明确UDF输出结果是否是定值
  • 巧妙运用运行时上下文

SQL标量函数(Scalar Function)

SQL表值函数(Table Function)

SQL聚合函数(Aggregate Function)

SQL表值聚合函数(Table Aggregate Function)

5、SQL 能力扩展篇

SQL UDF扩展-Module

  • CoreModule:默认内置Module
  • 用户自定义Module
  • HiveModule:支持Hive内置UDF
  • 应用案例:Flink SQL支持Hive UDF

SQL元数据持久化扩展-Catalog

  • GenericMemoryCatalog:默认内存Catalog
  • JdbcCatalog
  • HiveCatalog:使用Hive Metastore存储元数据
  • 用户自定义Catalog

SQL任务参数配置

  • 运行时参数
  • 优化器参数
  • 表参数

SQL性能调优

  • MiniBatch聚合:微批聚合
  • Local-Global聚合:两阶段聚合优化
  • Split-Distinct聚合:去重分桶避免数据倾斜
  • Filter聚合:去重Bitmap复用

SQL用户自定义Source|Sink

SQL语法扩展

相关推荐
Sunyanhui12 小时前
牛客网 SQL36查找后排序
数据库·sql·mysql
云云3212 小时前
怎么通过亚矩阵云手机实现营销?
大数据·服务器·安全·智能手机·矩阵
新加坡内哥谈技术2 小时前
苏黎世联邦理工学院与加州大学伯克利分校推出MaxInfoRL:平衡内在与外在探索的全新强化学习框架
大数据·人工智能·语言模型
Data-Miner2 小时前
经典案例PPT | 大型水果连锁集团新零售数字化建设方案
大数据·big data
lovelin+v175030409663 小时前
安全性升级:API接口在零信任架构下的安全防护策略
大数据·数据库·人工智能·爬虫·数据分析
道一云黑板报3 小时前
Flink集群批作业实践:七析BI批作业执行
大数据·分布式·数据分析·flink·kubernetes
darkdragonking3 小时前
OpenEuler 22.03 安装 flink-1.17.2 集群
flink·openeuler
core5123 小时前
flink sink kafka
flink·kafka·sink
节点。csn3 小时前
flink集群搭建 详细教程
大数据·服务器·flink
goTsHgo3 小时前
Flink 的并行度配置低于Kafka 分区数会出现的问题
flink