这门课解决什么问题

很多做后端或数据开发的上班族,平时处理数据习惯写定时批处理脚本。一旦业务方要求看分钟级实时大屏,或者营销活动期间需要秒级反欺诈,传统离线数仓就不够用。Flink 加 ClickHouse 这套组合,在企业里通常用来解决两类场景:一是实时采集业务库变更并秒级同步到分析库,二是实时计算用户行为指标并支撑大屏展示。这门课围绕这套技术栈展开,帮你理清从数据采集、流式计算到实时存储的完整链路。如果你目前只会写 SQL 或跑 Spark 批任务,遇到实时需求只能现查文档,这门课能帮你把这块短板补上。

资料怎么配合练习

这套资料偏工程实操,建议按模块顺序推进,不要跳着看。前期认知篇别快进,它讲清楚框架定位和本地开发环境搭建,用 Maven 构建项目、在 IDEA 里跑通多模块工程,是后续所有练习的前提。环境跑通后,重点放在 Flink 的流处理 API 和状态管理,配合资料里的示例代码边敲边改。ClickHouse 部分建议先建表再跑写入,对比 Flink 直接写入和通过中间件落盘两种方式的差异。练习时准备一份本地日志文件模拟实时数据流,不要只看视频不动手。遇到报错先查依赖版本是否匹配,这是新手最容易卡住的地方。

学完能独立做什么

  • 独立搭建本地 Flink 开发环境,跑通简单的流处理任务,理解作业提交和执行流程。
  • 用 Flink 处理常见实时数据源,比如 Kafka 消息流,完成基本清洗、聚合和窗口计算。
  • 把计算结果写入 ClickHouse,并能针对查询场景设计表结构,知道什么字段该用排序键。
  • 在团队里接手实时数仓相关需求时,能看懂现有作业逻辑,做简单指标修改和问题排查。

整体来说,这套资料适合有 Java 基础、写过简单后端或数据脚本、想往实时计算方向转的人。如果你连 Maven 和 SQL 都不熟,建议先补这些再来看。资料本身不承诺学完就能涨薪,但实时计算这块在企业里确实是刚需,把这套组合练熟,简历上能多写一行实打实的东西。


已经在做大数据,Flink让你轻松提薪;尚未入行大数据,Flink让你弯道超车

*   第1章 Flink认知篇/

  *   1-1 课前须知,这里有你需要了解得一切.mp4 09:02

  *   1-2 课程目录.mp4 01:39

  *   1-3 业界大数据分布式计算框架.mp4 04:22

  *   1-4 初识Flink.mp4 10:47

  *   1-5 什么是Flink.mp4 12:12

1-6 【科普小贴士】Flink发展史&特点&行业应用.mp4

  *   1-7 学习一个新框架的方法论.mp4 19:58

*   第2章 Flink本地开发快速上手篇/

  *   2-1 课程目录.mp4 01:38

  *   2-2 Maven部署.mp4 09:20

  *   2-3 IDEA社区版和旗舰版区别.mp4 03:17

  *   2-4 基于官方提供的命令来构建Flink项目.mp4 10:25

  *   2-5 基于IDEA构建多module的Flink项目.mp4 11:31

  *   2-6 Flink编程模型.mp4 04:19

  *   2-7 基于Flink开发第一个实时处理案例之需求分析.mp4 04:41

  *   2-8 基于Flink开发第一个实时处理案例之功能实现一.mp4 11:44

  *   2-9 基于Flink开发第一个实时处理案例之功能实现二.mp4 01:38

  *   2-10 基于Flink开发第一个实时处理案例之功能实现三.mp4 05:14

  *   2-11 基于Flink开发第一个批处理案例之需求分析.mp4 01:11

  *   2-12 基于Flink开发第一个批处理案例之功能实现.mp4 03:52

  *   2-13 基于Flink开发第一个批处理案例之功能实现重构.mp4 02:39

  *   2-14 基于Flink编程套路总结.mp4 03:14

  *   2-15 本章重难点总结.mp4 02:20

2-16 【讨论题】关于数据结果的思考.mp4

2-17 【任务题】Lambda 表达式版案例实现.mp4

*   第3章 Flink部署篇/

  *   3-1 课程目录.mp4 01:51

3-2 【环境配置】云主机开通及配置.mp4

  *   3-3 Flink架构.mp4 11:59

  *   3-4 Flink部署.mp4 16:38

  *   3-5 Flink UI参数讲解.mp4 04:53

  *   3-6 通过命令行方式提交&展示&取消Flink作业.mp4 09:53

  *   3-7 通过UI方式提交&展示&取消Flink作业.mp4 03:56

  *   3-8 关于并行度的补充.mp4 03:02

3-9 【讨论题】知识梳理.mp4

3-10 【任务题】Flink集群部署应用.mp4

*   第4章 Flink实时处理核心API基础篇/

  *   4-1 课程目录.mp4 01:24

  *   4-2 DataStream API概述.mp4 07:38

  *   4-3 StreamExecutionEnvironment详解.mp4 07:45

  *   4-4 Source概述.mp4 08:56

  *   4-5 Source API编程之Socket及并行度.mp4 05:11

  *   4-6 Source API编程之并行集合及并行度.mp4 06:13

4-7 【核心组件部署】ZooKeeper&Kafka部署.mp4

  *   4-8 Source API编程之对接Kafka数据.mp4 07:18

  *   4-9 Transformation概述.mp4 06:41

  *   4-10 Transformation算子之map.mp4 11:12

  *   4-11 Transformation算子之filter.mp4 05:19

  *   4-12 Transformation算子之flatMap.mp4 05:18

  *   4-13 Transformation算子之keyBy.mp4 06:47

  *   4-14 Transformation算子之reduce.mp4 08:42

  *   4-15 Sink概述.mp4 02:31

  *   4-16 Sink之print&printToErr及并行度.mp4 09:00

4-17 【任务题】词频统计.mp4

4-18 【任务题】Kafka消息的发送和接收.mp4

4-19 【任务题】readTextFile的并行度.mp4

4-20 【面试讨论题】Flink中的并行度.mp4

4-21 【面试讨论题】Task Slot的理解.mp4

*   第5章 Flink实时处理核心API进阶篇/

  *   5-1 课程目录.mp4 03:18

  *   5-2 MapFunction&RichMapFunction认识.mp4 06:19

  *   5-3 通过RichMapFunction认识对应的生命周期方法.mp4 07:25

  *   5-4 SourceFunction代码层级.mp4 03:23

  *   5-5 自定义单并行度Source.mp4 09:15

  *   5-6 自定义多并行度Source.mp4 01:44

  *   5-7 自定义Source读取MySQL数据.mp4 13:15

  *   5-8 Transformation算子之union.mp4 04:14

  *   5-9 Transformation算子之connect.mp4 07:37

  *   5-10 Transformation算子之CoMapFunction.mp4 06:10

  *   5-11 Transformation算子之CoFlatMapFunction.mp4 02:17

  *   5-12 自定义分区器.mp4 10:22

  *   5-13 自定义MySQLSink需求分析.mp4 04:20

  *   5-14 自定义MySQLSink功能实现.mp4 10:33

  *   5-15 RedisSink功能实现.mp4 09:02

5-16 【核心组件部署】Redis部署.mp4

5-17 【任务题】自定义RedisSink.mp4

5-18 【任务题】自定义数据源.mp4

5-19 【面试讨论题】Flink中的分区策略.mp4

5-20 【面试讨论题】Flink DataStream中使用得算子.mp4

*   第6章 【项目实战第一篇】基于Flink+ClickHouse构建大数据实时分析项目实战/

  *   6-1 课程目录.mp4 03:17

  *   6-2 同类产品分析.mp4 06:07

  *   6-3 项目架构.mp4 06:15

  *   6-4 项目子工程创建.mp4 01:41

  *   6-5 字段说明.mp4 05:25

  *   6-6 用户行为日志类定义.mp4 03:01

  *   6-7 功能一需求分析.mp4 03:18

  *   6-8 功能一实现之数据清洗.mp4 04:59

  *   6-9 功能一实现之统计分析.mp4 04:56

  *   6-10 功能一实现之统计结果入Redis.mp4 05:30

  *   6-11 功能一实现之拓展.mp4 04:08

  *   6-12 需求二之功能分析.mp4 06:51

  *   6-13 需求二之IP解析测试.mp4 06:30

  *   6-14 功能二实现之自定义UDF函数解析IP地址.mp4 04:55

  *   6-15 功能二实现之统计分析及入库.mp4 03:35

  *   6-16 需求二之异步IO补充.mp4 14:09

  *   6-17 前面两个需求可能会遇到的问题提炼.mp4 04:55

  *   6-18 重难点总结.mp4 02:22

6-19 【任务题】统计新老用户的数据分布(1).mp4

6-20 【任务题】统计新老用户的数据分布(2).mp4

6-21 【任务题】统计结果存储.mp4

6-22 【面试讨论题】在数据清洗过程中做过的处理.mp4

6-23 【面试讨论题】使用Flink做实时处理项目架构选型.mp4

*   第7章 Flink时间语义及Window API篇/

  *   7-1 课程目录.mp4 04:09

  *   7-2 时间三兄弟.mp4 10:16

  *   7-3 时间三兄弟举例解释.mp4 05:31

  *   7-4 初识Window.mp4 03:55

  *   7-5 Window分类.mp4 08:19

  *   7-6 Window Assigner.mp4 04:16

  *   7-7 滚动窗口.mp4 03:40

  *   7-8 滑动窗口.mp4 03:20

  *   7-9 会话窗口.mp4 03:04

  *   7-10 窗口生命周期.mp4 04:45

  *   7-11 基于ProcessingTime的Non-Keyed滚动窗口实战.mp4 11:03

  *   7-12 基于ProcessingTime的Keyed滚动窗口实战.mp4 04:21

  *   7-13 WindowFunction概述.mp4 04:02

  *   7-14 WindowFunction之ReduceFunction实战.mp4 05:12

  *   7-15 WindowFunction补充.mp4 03:04

  *   7-16 WindowFunction之ProcessWindowFunction实战.mp4 10:19

  *   7-17 重难点总结.mp4 04:14

7-18 【任务题】会话窗口编程.mp4

7-19 【任务题】滑动窗口编程.mp4

7-20 【面试讨论题】数据倾斜解决方案.mp4

7-21 【面试讨论题】对WindowFunction的认识.mp4

7-22 【面试讨论题】对于时间语义的理解.mp4

7-23 【面试讨论题】Flink中的窗口分析.mp4

*   第8章 Flink Watermark/

  *   8-1 课程目录.mp4 02:57

  *   8-2 Watermark概述.mp4 12:53

  *   8-3 基于EventTime和Watermark结合滚动窗口综合案例之没有延迟.mp4 14:27

  *   8-4 基于EventTime和Watermark结合滚动窗口综合案例之有延迟.mp4 15:16

  *   8-5 基于EventTime和Watermark结合滚动窗口综合案例之延迟数据丢失.mp4 05:01

  *   8-6 基于EventTime和Watermark结合滚动窗口综合案例之捕获到延迟数据.mp4 08:05

  *   8-7 重难点总结.mp4 04:31

8-8 【任务题】会话窗口编程.mp4

8-9 【任务题】滑动窗口编程.mp4

8-10 【面试讨论题】乱序数据解决方案.mp4

8-11 【面试讨论题】Flink中水印得理解.mp4

*   第9章 Flink状态管理篇/

  *   9-1 课程目录.mp4 02:53

  *   9-2 状态能为什么带来什么.mp4 09:06

  *   9-3 State分类.mp4 16:10

  *   9-4 使用ValueState完成求平均数功能.mp4 14:45

  *   9-5 使用MapState完成求平均数功能.mp4 05:59

  *   9-6 Flink Checkpoint机制.mp4 15:04

  *   9-7 Flink应用程序中开启checkpoint.mp4 05:32

  *   9-8 Restart Strategy.mp4 08:20

  *   9-9 Checkpoint整合重启策略功能测试screenflow.mp4 07:35

  *   9-10 Checkpoint整合重启策略及状态功能测试screenflow.mp4 05:29

  *   9-11 Flink StateBackend.mp4 06:01

  *   9-12 Flink StateBackend之MemoryStateBackend.mp4 05:59

  *   9-13 Flink StateBackend之FsStateBackend.mp4 02:46

  *   9-14 Flink StateBackend之RocksDBStateBackend.mp4 05:35

  *   9-15 FsStateBackend 本地文件系统功能测试.mp4 02:49

  *   9-16 ExternalizedCheckpointCleanup在生产上的使用.mp4 05:12

  *   9-17 FsStateBackend HDFS功能测试.mp4 02:32

  *   9-18 Checkpoint全流程测试之Flink UI操作.mp4 07:28

  *   9-19 Checkpoint全流程测试之命令行操作.mp4 03:47

  *   9-20 Checkpoint小结.mp4 04:34

  *   9-21 Savepoints.mp4 09:26

  *   9-22 重难点总结.mp4 02:23

9-23 【任务题】使用ListState实现求平均数.mp4

9-24 【任务题】RocksDBStateBackend应用.mp4

9-25 【面试讨论题】Flink的容错机制.mp4

9-26 【面试讨论题】Checkpoint和SavePoint的区别.mp4

9-27 【面试讨论题】Flink中的状态存储.mp4

*   第10章 【项目实战第二篇】基于Flink+ClickHouse构建大数据实时分析项目实战/

  *   10-1 课程目录.mp4 02:19

  *   10-2 功能一之需求分析.mp4 09:22

  *   10-3 功能一之实现01.mp4 04:08

  *   10-4 功能一之实现02.mp4 14:50

  *   10-5 功能一之实现03.mp4 11:06

  *   10-6 功能二之需求分析.mp4 03:26

  *   10-7 功能二之实现01.mp4 07:26

  *   10-8 功能二之实现02.mp4 03:22

  *   10-9 重难点总结.mp4 07:05

10-10 【任务题】布隆过滤器的原理.mp4

10-11 【任务题】ValueState应用.mp4

10-12 【面试讨论题】布隆过滤器应用分析.mp4

10-13 【面试讨论题】分组TopN的实现思路及数据倾斜的解决方案.mp4

*   第11章 【项目实战第三篇】基于Flink+ClickHouse构建大数据实时分析项目实战/

  *   11-1 课程目录.mp4 02:46

  *   11-2 Flink对接Kafka数据入门.mp4 11:20

  *   11-3 Flink整合Kafka代码开发.mp4 11:55

  *   11-4 参数配置化并读取.mp4 07:52

  *   11-5 Flink对接Kafka完整参数配置开发.mp4 08:28

  *   11-6 Flink对接Kafka数据封装V1版本.mp4 03:54

  *   11-7 Flink对接Kafka数据封装V2版本.mp4 01:18

  *   11-8 Flink对接Kafka数据封装V3版本.mp4 05:38

  *   11-9 Flink对接Kafka数据分析结果入Redis.mp4 06:55

  *   11-10 Flink ExactlyOnce图解.mp4 08:39

  *   11-11 Flink两阶段提交.mp4 08:46

11-12 【任务题】自定义MySQL Sink.mp4

11-13 【面试讨论题】Flink整合kafka的两阶段提交的认识.mp4

11-14 【面试讨论题】Flink如何实现Exactly-Once.mp4

*   第12章 初识ClickHouse/

  *   12-1 课程目录.mp4 02:05

  *   12-2 背景需求.mp4 03:39

  *   12-3 初识ClickHouse.mp4 08:17

  *   12-4 ClickHouse部署及快速入门.mp4 10:59

  *   12-5 ClickHouse常用参数讲解.mp4 02:53

  *   12-6 数据类型之Int和Float.mp4 08:45

  *   12-7 数据类型之Decimal.mp4 07:37

  *   12-8 数据类型之Bool.mp4 01:41

  *   12-9 数据类型之String&FixedString&UUID.mp4 07:35

  *   12-10 数据类型之Date&DateTime&DateTime64.mp4 06:49

  *   12-11 数据类型之Array.mp4 01:53

  *   12-12 数据类型之Tuple.mp4 03:32

  *   12-13 数据类型之Nested.mp4 04:03

  *   12-14 数据库和表创建语法及数据库引擎.mp4 05:38

  *   12-15 初识表引擎.mp4 03:13

  *   12-16 表引擎之TinyLog.mp4 06:29

  *   12-17 表引擎之StripeLog.mp4 05:23

  *   12-18 表引擎之Log.mp4 03:01

  *   12-19 ClickHouse整合MySQL.mp4 10:18

  *   12-20 ClickHouse API编程.mp4 04:55

12-21 【任务题】ClickHouse的集群搭建.mp4

12-22 【任务题】ClickHouse的数据处理.mp4

12-23 【面试讨论题】谈谈对 ClickHouse 引擎得理解.mp4

12-24 【面试讨论题】ClickHouse得选择必然性.mp4

*   第13章 【项目实战终极篇】基于Flink+ClickHouse构建大数据实时分析项目实战/

  *   13-1 课程目录.mp4 01:34

  *   13-2 现存问题描述及分析.mp4 07:10

  *   13-3 ReplacingMergeTree引擎的用法.mp4 06:46

  *   13-4 CH表如何设计.mp4 04:54

  *   13-5 CH ID生成策略.mp4 09:40

  *   13-6 Flink整合CH插入数据.mp4 10:29

  *   13-7 使用Flink进行数据清洗.mp4 08:23

  *   13-8 Flink清洗后的数据落地到CH并进行各种维度的统计分析.mp4 09:05

  *   13-9 全流程服务器测试.mp4 05:34

  *   13-10 引入CEP.mp4 04:38

  *   13-11 CEP模式概述.mp4 05:34

  *   13-12 CEP功能开发.mp4 08:32

  *   13-13 CEP功能测试.mp4 04:15

  *   13-14 前端UI展示.mp4 07:35

13-15 【任务题】数据写入ClickHouse.mp4

13-16 【任务题】Flink on YARN运行全流程.mp4

13-17 【任务题】使用CEP完成数据提取.mp4

13-18 【面试讨论题】实时数据分析平台构建思路.mp4

*   第14章 Flink DataSet篇/

  *   14-1 课程目录.mp4 01:53

  *   14-2 Flink批处理概述.mp4 06:47

  *   14-3 对接数据源为csv格式的数据.mp4 09:49

  *   14-4 对接数据源为压缩后的数据.mp4 02:16

  *   14-5 对接数据源为子目录的数据.mp4 03:19

  *   14-6 Transformation之map.mp4 05:42

  *   14-7 Transformation之mapPartition.mp4 03:04

  *   14-8 Transformation之distinct.mp4 02:47

  *   14-9 Transformation之first-n.mp4 07:37

  *   14-10 Sink.mp4 07:24

  *   14-11 Flink中分布式缓存的使用.mp4 08:05

  *   14-12 Flink中计数器的使用.mp4 07:37

  *   14-13 重难点总结.mp4 04:34

14-14 【任务题】实现join的功能.mp4

14-15 【任务题】join和cross算子的编程.mp4

14-16 【面试讨论题】Flink中使用分布式缓存的看法.mp4

*   第15章 Flink Table&SQL API篇/

  *   15-1 课程目录.mp4 03:32

  *   15-2 Flink Table API&SQL概述.mp4 06:08

  *   15-3 Flink Table API&SQL编程模型.mp4 08:03

  *   15-4 Flink SQL整合DataStream编程.mp4 06:59

  *   15-5 Flink Table API整合DataStream编程.mp4 03:24

  *   15-6 Flink Table API整合DataStream编程toRetractStream使用.mp4 06:34

  *   15-7 动态表和连续查询.mp4 07:43

  *   15-8 图解连续查询.mp4 05:24

  *   15-9 Table转Stream的方式.mp4 07:06

  *   15-10 Flink Table API&SQL Connector概述.mp4 03:38

  *   15-11 Flink Table API&SQL FileSystem Connector读取数据.mp4 08:45

  *   15-12 Flink Table API&SQL FileSystem Connector写出数据.mp4 04:33

  *   15-13 Flink Table API结合Window及EventTime编程.mp4 16:13

  *   15-14 Flink SQL结合Window及EventTime编程.mp4 05:03

  *   15-15 Flink UDF函数概述.mp4 06:34

  *   15-16 Flink UDF函数编程实战.mp4 08:24

  *   15-17 重难点总结.mp4 06:10

15-18 【任务题】实现数据的对接和Sink.mp4

15-19 【任务题】实现EventTime结合滑动窗口的功能测试.mp4

15-20 【任务题】完成IP解析的功能开发.mp4

15-21 【面试讨论题】Flink项目中选择哪种访问方式.mp4

15-22 【面试讨论题】Flink使用Kafka对接时的注意事项.mp4

15-23 【面试讨论题】Flink SQL是如何实现SQL的解析的.mp4

*   第16章 Flink版本升级篇/

  *   16-1 课程目录.mp4 02:00

  *   16-2 开发环境准备.mp4 04:16

  *   16-3 老版本keyBy的用法.mp4 07:06

  *   16-4 新版本keyBy的用法.mp4 02:44

  *   16-5 老版本WM的用法.mp4 06:29

  *   16-6 新版本WM的用法.mp4 08:14

  *   16-7 新老版本Table API&SQL整合WM的用法.mp4 16:10

  *   16-8 Flink on YARN运行及升级.mp4 17:19

16-9 【拓展阅读】Flink版本升级核心梳理.mp4

*   第17章 【拓展】基于Flink构建实时数仓项目实战/

  *   17-1 课程目录.mp4 03:50

  *   17-2 实时数仓架构及分层.mp4 16:59

  *   17-3 认识Canal.mp4 06:37

  *   17-4 Canal对接Kafka联调.mp4 15:12

  *   17-5 使用TCP方式拉取Canal数据.mp4 16:38

  *   17-6 双流JOIN设计思路.mp4 07:27

  *   17-7 双流JOIN实现之对接数据.mp4 09:19

  *   17-8 双流JOIN实现之设置WM.mp4 03:53

  *   17-9 双流JOIN实现之JOIN实现.mp4 09:52

  *   17-10 双流JOIN实现之未关联上的数据处理方案.mp4 05:41

  *   17-11 实时数仓数据流转&命名规范.mp4 06:33

17-12 【任务题】基于Flink实现维表的join.mp4

17-13 【任务题】双流join的测试.mp4

17-14 【面试讨论题】如何基于UI配置方式完成项目设计.mp4

17-15 【面试讨论题】maxwell和canal的区别.mp4

*   第18章 总结和展望/

  *   18-1 课程总结和回顾.mp4 14:10

*   第19章 【2022持续升级】Flink CDC编程实战/

  *   19-1 课程目录.mp4 01:05

  *   19-2 针对现存问题进行分析引出CDC.mp4 04:28

  *   19-3 认识Flink CDC.mp4 06:39

  *   19-4 开发之前的准备工作.mp4 04:07

  *   19-5 基于DataStream API的Flink CDC编程实战.mp4 10:08

  *   19-6 监听多表实战.mp4 05:30

  *   19-7 StartupOptions选项讲解.mp4 04:59

  *   19-8 反序列化概述.mp4 03:54

  *   19-9 自定义反序列化器开发.mp4 12:51

  *   19-10 Flink CDC整合Checkpoint保证一次性语义.mp4 07:54

  *   19-11 Flink CDC版本调整.mp4 06:18

  *   19-12 Flink CDC对接Table&SQL API实战.mp4 08:16

  *   19-13 Flink CDC对接Table&SQL API选项参数.mp4 03:04

  *   19-14 两种实现方式对比.mp4 01:31

  *   19-15 Flink CDC总结及扩展.mp4 02:56

课程目录

第1章 Flink认知篇
第2章 Flink本地开发快速上手篇
第3章 Flink部署篇
第4章 Flink实时处理核心API基础篇
第5章 Flink实时处理核心API进阶篇
第6章 【项目实战第一篇】基于Flink+ClickHouse构建大数据实时分析项目实战
第7章 Flink时间语义及Window API篇
第8章 Flink Watermark
第9章 Flink状态管理篇
第10章 【项目实战第二篇】基于Flink+ClickHouse构建大数据实时分析项目实战
第11章 【项目实战第三篇】基于Flink+ClickHouse构建大数据实时分析项目实战
第12章 初识ClickHouse
第13章 【项目实战终极篇】基于Flink+ClickHouse构建大数据实时分析项目实战
第14章 Flink DataSet篇
第15章 Flink Table&SQL API篇
第16章 Flink版本升级篇
第17章 【拓展】基于Flink构建实时数仓项目实战
第18章 总结和展望
第19章 【2022持续升级】Flink CDC编程实战