1. 项目背景与核心价值
作为一名长期奋战在实时计算一线的数据工程师,我深刻理解从传统SQL转向Flink SQL的痛点。去年在给团队做内训时,发现市面上缺少一套能同时满足"业务场景真实"、"案例完整可运行"、"聚焦高频难点"的中文学习材料。这就是我创建这个Flink SQL案例库的初衷。
这个仓库与官方文档最大的区别在于:我们不是按语法维度组织内容,而是按照"一个案例解决一个业务问题"的思路设计。比如电商场景下的"下单转支付转化率"案例,就完整包含了从Kafka源表创建、事件时间处理、窗口聚合到最终指标计算的完整链路。
重要提示:所有案例都经过生产环境简化,确保既能反映真实业务逻辑,又能在本地单机环境快速运行。测试数据生成脚本已内置在仓库中。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 案例库架构设计解析
2.1 技术选型考量
选择Flink 1.16版本作为基础,主要基于:
- 该版本SQL语法已趋于稳定
- 社区资源丰富且兼容性好
- 本地模式运行资源消耗低(实测8GB内存笔记本可流畅运行所有案例)
案例采用纯SQL API实现(非DataStream),因为:
- 数仓场景下SQL仍是主流开发方式
- 更贴近面试考察重点
- 降低学习曲线,适合从Hive等批处理系统转型的工程师
2.2 案例组织结构
code复制/flink-sql-examples-cn
├── /docs # 场景说明文档
├── /data # 测试数据生成器
├── /sql # 核心案例目录
│ ├── 01_basic # 基础建表示例
│ ├── 02_window # 窗口聚合案例
│ ├── 03_deduplicate # 去重场景
│ ├── 04_join # 双流Join
│ └── 05_topn # TopN计算
└── docker-compose.yml # 本地环境配置
3. 核心案例深度解析
3.1 窗口GMV计算(滚动窗口实战)
这是最基础的窗口聚合案例,但包含多个易错点:
sql复制-- 创建Kafka源表(带事件时间字段)
CREATE
