能力缺口:只会写流处理,遇到批数据清洗就卡壳
很多开发者把 Flink 当成纯粹的流处理引擎,简历上写着“精通实时计算”,但在实际实时数仓建设里,一旦遇到历史数据回溯、离线维度表初始化或者大批量文件清洗,往往直接卡壳。这门课解决的核心问题就是:如何用 Flink 的 DataSet 批处理端补齐实时数仓中的离线数据流转环节。它不跟你扯大厂架构演进,而是直接按住你的手去写批处理程序,专治“只会 DataStream、不懂 DataSet”的偏科症状。如果你目前只会跑简单的流式聚合,对批量读取外部存储、多表关联拼装维度等操作完全没有概念,或者正准备转岗到实时数仓开发岗但缺乏批流一体的实操经验,那么这套实操导向的资料正好对应你的短板。
建议先看哪几块及资料配合练习法
建议直接跳过泛泛的课程介绍,从手写批处理程序和读取外部数据源这两块看起。不要光看视频跟着点头,必须把配套的资料包当成你的随堂练习册。具体配合方法:先看完手写程序和读取 CSV 数据源的演示,立刻在本地环境建一个一模一样的工程,自己敲一遍数据源接入逻辑;接着看递归读取目录下文件的操作,自己造一个包含子文件夹的测试数据集,跑通递归读取。资料里的 Map、FlatMap、MapPartition 等转换算子实操,不要只记参数,要在本地真实跑一遍数据流转,观察每个算子输入输出的数据条数和分区变化。遇到过滤和聚合操作,自己造一组带脏数据的数据集,先过滤再聚合,验证结果是否符合预期。看 Join 和 Union 的实操时,必须自己准备两张测试表,在本地跑通关联和合并,观察左右表数据不匹配时的输出情况。每看完一个算子演示,立刻用配套资料里的同款逻辑写一个变体程序,比如把内关联改成外关联,看报错在哪,怎么修。别等全看完再动手,看一个补一个,别假装看一遍就会了。
学完能独立做什么及自测问题
学完这套实操,你应该能独立完成实时数仓中离线层的批量数据接入和清洗任务。具体来说,给你一批历史 CSV 文件或者多层嵌套目录的数据,你能写出完整的 Flink 批处理程序,把数据读进来,做去重、过滤、转换和聚合,最后把两张表通过 Join 拼成一张宽表,供下游实时链路使用。不再需要抄别人的模板,而是能根据业务需求自己组合算子。看完资料后,先问自己几个问题:递归读取目录时,文件格式不一致怎么处理?MapPartition 和普通 Map 在什么场景下用哪个,性能差异在哪?Union 和 Join 都能合并数据,但语义和输出结果有什么本质区别?默认 Join 操作如果右表数据量大导致内存溢出,该怎么调整?如果这些问题你答不上来,说明只是跟着视频看了一遍,没真正吃透,回头把对应模块的实操再敲一遍,直到能独立默写出核心逻辑为止。
课程目录
1-1 [课程介绍] 课程内容安排与介绍 (05:11) 2-1 [Flink DataSet] 手写一个Flink 批处理程序 (14:22) 2-2 [Flink DataSet] 读取CSV格式数据源 (20:01) 2-3 [Flink DataSet] 递归读取目录下文件 (07:15) 2-4 [Flink DataSet] Map&FlatMap&MapPartition实操 (08:18) 2-5 [Flink DataSet] 过滤和聚合转换操作 (03:27) 2-6 [Flink DataSet] 数据去重实操 (05:32) 2-7 [Flink DataSet] Union实操 (06:19) 2-8 [Flink DataSet] 默认Join实操 (10:05) 2-9 [Flink DataSet] Join并实现JoinFunction实操 (11:26) 2-10 [Flink DataSet] left outer Join实操 (08:34) 2-11 [Flink DataSet] right outer Join实操 (06:30) 2-12 [Flink DataSet] full outer Join实操 (06:44) 2-13 [Flink DataSet] DataSink数据输出 (05:13) 2-14 [Flink DataSet] 广播变量实操 (22:41) 2-15 [Flink DataSet] 分布式缓存实操 (15:05) 2-16 [Flink DataSet] 构造方法传参实操 (06:08) 2-17 [Flink DataSet] withParameters传参实操 (05:13) 2-18 [Flink DataSet] 全局传参实操 (05:08) 3-1 [Flink DataSet容错] Flink 批处理容错 (03:15) 3-2 [Flink DataSet容错] Fixed delay和Failure rate重启策略使用 (10:43) 4-1 [Flink DataSet Connectors] Flink 批处理Connector (05:21) 4-2 [Flink DataSet Connectors] Flink HBaseSink代码实现 (29:40) 4-3 [Flink DataSet Connectors] Flink HBaseSink测试运行 (10:08) 4-4 [Flink DataSet Connectors] Flink HBaseSource实现 (16:07) 5-1 [Flink Table API & SQL] Flink Table API和SQL介绍 (07:32) 5-2 [Flink Table API & SQL] Flink SQL编程套路-Stream SQL (13:53) 5-3 [Flink Table API & SQL] Flink SQL编程套路-Batch SQL (06:09) 5-4 [Flink Table API & SQL] Flink SQL编程套路-Batch Table (03:49) 5-5 [Flink Table API & SQL] Flink API&SQL流处理介绍 (02:53) 5-6 [Flink Table API & SQL] 动态表与连续查询 (08:02) 5-7 [Flink Table API & SQL] 表转流-Append-only 模式 (22:53) 5-8 [Flink Table API & SQL] 表转流-Retract 模式 (04:25) 5-9 [Flink Table API & SQL] Flink SQL读取Kafka代码实现 (16:16) 5-10 [Flink Table API & SQL] Flink SQL读取Kafka测试运行 (09:15) 5-11 [Flink Table API & SQL] Flink Table API实操 (19:31) 5-12 [Flink Table API & SQL] Flink SQL实操 (08:45) 6-1 [Flink 实时数仓项目实战] 项目需求 (05:23) 6-2 [Flink 实时数仓项目实战] 架构设计 (06:27) 6-3 [Flink 实时数仓项目实战] 解决方案 (05:03) 6-4 [Flink 实时数仓项目实战] Mysql主备复制实现原理 (03:03) 6-5 [Flink 实时数仓项目实战] Canal架构与工作原理 (05:48) 6-6 [Flink 实时数仓项目实战] MySQL binlog介绍 (05:10) 6-7 [Flink 实时数仓项目实战] MySQL安装 (08:30) 6-8 [Flink 实时数仓项目实战] MySQL服务启动与设置 (04:18) 6-9 [Flink 实时数仓项目实战] MySQL新建账号及开启Binlog (07:52) 6-10 [Flink 实时数仓项目实战] Canal-Kafka安装与配置 (04:55) 6-11 [Flink 实时数仓项目实战] Canal-Kafka服务启动与测试 (07:36) 6-12 [Flink 实时数仓项目实战] 数据库建模 (07:59) 6-13 [Flink 实时数仓项目实战] 商品表数据接入(1) (14:42) 6-14 [Flink 实时数仓项目实战] 商品表数据接入(2) (03:03) 6-15 [Flink 实时数仓项目实战] 订单表数据实时接入(1) (32:59) 6-16 [Flink 实时数仓项目实战] 订单表数据实时接入(2) (11:54) 6-17 [Flink 实时数仓项目实战] 订单表数据实时接入(3) (04:32) 6-18 [Flink 实时数仓项目实战] Flink全量拉取模板(1) (20:06) 6-19 [Flink 实时数仓项目实战] Flink全量拉取模板(2) (11:51) 6-20 [Flink 实时数仓项目实战] Flink全量拉取模板(3) (09:05) 6-21 [Flink 实时数仓项目实战] 动手实现Flink版本的Sqoop(1) (20:04) 6-22 [Flink 实时数仓项目实战] 动手实现Flink版本的Sqoop(2) (05:58) 6-23 [Flink 实时数仓项目实战] Flink增量实时同步模块在生成环境中的难点问题 (14:34) 6-24 [Flink 实时数仓项目实战] Flink增量实时同步模块实现(1) (13:17) 6-25 [Flink 实时数仓项目实战] Flink 增量实时同步模块实现(2) (13:13) 6-26 [Flink 实时数仓项目实战] Flink 增量实时同步模块实现(3) (12:47) 6-27 [Flink 实时数仓项目实战] Flink增量实时同步模块实现(4) (11:13) 6-28 [Flink 实时数仓项目实战] Flink增量实时同步模块整体联调(1) (08:09) 6-29 [Flink 实时数仓项目实战] Flink增量实时同步模块整体联调(2) (21:16) 6-30 [Flink 实时数仓项目实战] 项目总结 (06:44)





