这门课解决什么工作场景
很多做数据开发的人会遇到一个尴尬:离线批处理用 Hive 或 Spark,实时流处理又得另写一套 DataStream 代码,两套逻辑两套维护,字段对不上是常态。这门 Flink SQL 大数据项目实战课的核心切入点,就是用 SQL 同时写实时和离线任务,也就是所谓的流批一体。它解决的具体场景是:业务方要求分钟级甚至秒级的数据看板,同时又要求每天出一份对账报告;你不想写两套代码,想用 SQL 统一处理 Kafka 实时消息和 Hive 离线表。课程从动态表、连续查询这些底层概念讲起,帮你理解为什么 SQL 能跑在流上,而不是只教语法。
适合什么基础与建议先看哪几块
这门课不适合零基础。它默认你已经会写基本 SQL,了解 Kafka 消息队列,写过至少一个 Flink DataStream 作业。如果你连 Java 项目都搭不起来,先补基础再看。建议先看流批统一思想那块,尤其是动态表转数据流和连续查询的限制——这两节决定了你后面写 SQL 会不会因为时间语义和窗口理解错而出脏数据。接着直接跳到 Table API 与 DataStream 混合使用案例,因为真实项目里纯 SQL 不够用,经常要切回 DataStream 处理状态后端或水位线问题。把这两块吃透,后面的查询案例就是练手。
学完能独立做什么与资料怎么配合练习
学完后你应该能独立完成一个完整的实时数仓链路:从 Kafka 接入业务数据,用 Flink SQL 做维表 join 和窗口聚合,写入 Doris 或 ClickHouse 供看板查询,同时复用同一套 SQL 跑离线补数。资料配合练习的关键在于:不要只看视频跟着敲,要自己造脏数据。比如手动往 Kafka 灌乱序消息,观察水位线推进对窗口结果的影响;再比如故意造一个迟到数据,看 retract 流怎么更新下游表。课程里的查询案例可以当模板,但真正长经验的是你把这些 SQL 放到有数据倾斜、有维表更新、有反压的场景里跑一遍,调通一次胜过看十遍。
掌握Flink SQL流批一体技术,积累Flink SQL项目经验
课程目录
* 01 Flink SQL大数据项目实战/
* 01 【课程介绍】FlinkSQL大数据项目实战
* 02 Flink SQL流批统一/
* 01 Flink 流批统一思想
* 02 Flink Table API与SQL执行过程
* 03 关系代数与流处理
* 04 理解动态表与连续查询
* 05 动态表详解之连续查询
* 06 动态表详解之动态表转数据流
* 07 动态表详解之动态表查询限制
* 03 Flink Table编程全面详解/
* 01 FlinkSQL项目构建
* 02 FlinkTableAPI与DataStream混合使用案例
* 03 Flink标准TableAPI使用案例
* 04 FlinkTableAPI开发步骤详解
* 05 FlinkTableAPI查询案例
* 06 FlinkSQL查询案例
* 07 FlinkTableAPI与SQL混合查询案例
* 08 FlinkTableAPI聚合查询案例
* 09 FlinkTableAPI的输入输出
* 10 FlinkTableAPI读取FileSystem和CSV案
* 11 FlinkTableAPI读取FileSystem和JSON
* 12 FlinkTableAPI读取HDFS和JSON案例
* 13 FlinkTableAPI读取HBase案例
* 14 FlinkTableAPI读取Kafka案例
* 15 FlinkTableAPI读取MySQL案例
* 16 FlinkTableAPI读取Hive案例1
* 17 FlinkTableAPI读取Hive案例2
* 18 FlinkTableAPI读写Kafka案例
* 19 FlinkTableAPI读写Kafka高级特性详解
* 20 FlinkTableAPI读写MySQL案例
* 21 FlinkTableAPI写入Hive案例
* 22 FlinkTableAPI写入HBase案例1
* 23 FlinkTableAPI写入HBase案例2
* 24 FlinkTableAPI查询执行计划
* 25 FlinkTableAPI多输入与输出1
* 26 FlinkTableAPI多输入与输出2
* 04 Flink SQL编程全面详解/
* 01 FlinkSQL查询已注册表的案例
* 02 FlinkSQL查询未注册表的案例
* 03 FlinkSQL标准代码结构案例
* 04 FlinkSQL基本语法介绍
* 05 FlinkSQL读写Kafka案例
* 06 FlinkSQL读Kafka写入MySQL案例
* 07 FlinkSQL读MySQL写Hive案例
* 08 FlinkSQL读Kafka写HBase案例
* 05 Flink SQL Time与Watermark/
* 01 FlinkSQL时间与水位线机制
* 02 FlinkSQL定义ProcessTime案例
* 03 FlinkSQL定义EventTime案例
* 06 Flink SQL Window操作/
* 01 Flink窗口分类与使用
* 02 FlinkTable基于processTime翻滚窗口处理案
* 03 FlinkTable基于EventTime翻滚窗口处理案
* 04 FlinkTable基于计数翻滚窗口处理案例
* 05 FlinkTable基于ProcessTime滑动窗口处理案
* 06 FlinkTable基于计数滑动窗口处理案例
* 07 FlinkTable基于EventTime滑动窗口处理案例
* 08 FlinkTable基于ProcessTime的会话窗口处理
* 09 FlinkTable基于EventTime会话窗口处理案例
* 10 排序无界按UNBOUNDED_RANGE开窗案例
* 11 ProcessTime排序有界向前2行开窗案例
* 12 ProcessTime排序有界向前5秒开窗案例
* 13 排序无界UNBOUNDED_ROW开窗案例
* 14 排序无界UNBOUNDED_RANGE开窗案例
* 15 排序无界UNBOUNDED_ROW开窗案例
* 16 EventTime排序有界向前5秒开窗案例
* 17 EventTime排序有界向前2行开窗案例
* 18 FlinkSQL基于ProcessTime的滚动窗口案例
* 19 FlinkSQL基于ProcessTime的滑动窗口案例
* 20 基于ProcessTime的session窗
* 21 FlinkSQL基于EventTime的滚动窗口案例
* 22 FlinkSQL基于EventTime的滑动窗口案例
* 23 FlinkSQL基于EventTime的会话窗口案例
* 24 ProcessTime排序有界向前5s开窗案例
* 25 ProcessTime排序有界向前3行开窗案例
* 26 EventTime排序有界向前5s开窗案例
* 27 EventTime排序有界向前3行开窗案例
* 07 Flink SQL 函数使用/
* 01 FlinkSQL内置函数
* 02 FlinkSQL自定义函数分类与开发思路
* 03 FlinkSQL自定义UDF案例1
* 04 FlinkSQL自定义UDF案例2
* 05 FlinkSQL自定义UDTF案例1
* 06 FlinkSQL自定义UDTF案例2
* 07 FlinkSQL自定义UDAF案例1
* 08 FlinkSQL自定义UDAF案例2
* 09 FlinkSQL自定义UDATF案例1
* 10 FlinkSQL自定义UDATF案例2
* 08 Flink SQL 元数据管理/
* 01 FlinkSQL元数据管理
* 02 FlinkSQL与Hive整合访问
* 03 FlinkSQL客户端的使用与参数详解
* 04 FlinkSQL客户端与Kafka、MySQL集成
* 05 FlinkSQL客户端与Hive集成
* 09 FlinkSQL项目之Flume日志采集系统/
* 01 Flume架构及运行原理
* 02 Flume环境安装部署
* 03 案例实践:搭建Flume分布式集群1
* 04 案例实践:搭建Flume分布式集群2
* 05 案例实践:搭建Flume分布式集群3
* 10 FlinkSQL项目之Kafka分布式消息系统/
* 01 Kafka架构设计与工作原理
* 02 Kafka分布式集群搭建1
* 03 Kafka分布式集群搭建2
* 04 案例实践:Flume与Kafka集成开发
* 11 FlinkSQL项目之Davinci大数据可视化分析/
* 01 Davinci架构设计
* 02 Davinci安装部署1
* 03 Davinci安装部署2
* 04 启动Davinci服务
* 12 FlinkSQL项目之Flink核心知识进阶/
* 01 Flink并行度设置
* 02 Flink状态与容错
* 03 Flink窗口计算
* 04 Flink WaterMark机制
* 13 FlinkSQL项目之全流程开发/
* 01 项目需求分析与架构设计
* 02 数据库建模存储统计结果
* 03 实时产生直播审计数据
* 04 FlinkSQL项目核心代码开发
* 05 FlinkSQL项目优化
* 06 FlinkSQL整体项目联调
* 07 FlinkSQL项目整体梳理
* 08 项目数据大屏制作1
* 09 项目数据大屏制作2






