本书以Flink 1.16.0为主线,全面介绍了Flink的核心概念和常用功能。全书共9章,分别讲解了Flink核心概念、Flink部署与应用、DataStream API的使用、DataSet API的使用、Table API&SQL的使用、窗口操作、状态管理和Flink CEP的使用等。
本书附有配套视频、教学PPT、教学设计、测试题等资源,同时,为了帮助初学者更好地学习本书中的内容,还提供了在线答疑,欢迎读者关注。
本书可以作为高等教育本、专科院校数据科学与大数据技术及相关专业的教材,并适合大数据开发初学者、大数据运维人员以及大数据分析与挖掘的从业者阅读。
本书在编写的过程中,结合党的二十大精神进教材、进课堂、进头脑的要求,将知识教育与思想政治教育相结合,通过案例加深学生对知识的认识与理解,注重培养学生的创新精神、实践能力和社会责任感。案例设计从现实需求出发,激发学生的学习兴趣和动手思考的能力,充分发挥学生的主动性和积极性,增强学习信心和学习欲望。在知识和案例中融入了素质教育的相关内容,引导学生树立正确的世界观、人生观和价值观,进一步提升学生的职业素养,落实德才兼备的高素质卓越工程师和高技能人才的培养要求。此外。编者依据书中的内容提供了线上学习资源,体现现代信息技术与教育教学的深度融合,进一步推动教育数字化发展。
第1章 Flink概述 1.1 数据处理架构的演变 1.1.1 传统数据处理架构 1.1.2 有状态流处理架构 1.1.3 Lambda架构 1.1.4 新一代流处理架构 1.2 初识Flink 1.3 Flink的关键特性 1.4 Flink的应用场景 1.5 Flink运行时架构 1.5.1 整体架构 1.5.2 作业管理器 1.5.3 任务管理器 1.6 Flink分层API 1.7 Flink程序结构 1.8 本章小结 1.9 本章习题 第2章 Flink部署与应用 2.1基础环境搭建 2.2 Flink部署模式 2.3 Standalone模式之伪分布式 2.4 Standalone模式之完全分布式 2.5 Standalone模式之高可用完全分布式 2.6 Flink On YARN模式 2.7 启动Flink 2.7.1 Session模式 2.7.2 Application模式 2.8 flink命令 2.8.1 flink命令的使用 2.8.2 提交作业 2.8.3 查看作业 2.8.4 停止和取消作业 2.9 Flink Web UI 2.9.1 Flink Web UI的访问 2.9.2 使用Flink Web UI操作作业 2.10 本章小结 2.11 课后习题 第3章 DataStream API 3.1 DataStream程序的开发流程 3.2 DataStream的数据类型 3.3 执行环境 3.4 数据输入 3.4.1 从集合读取数据 3.4.2 从文件读取数据 3.4.3 从Socket读取数据 3.4.4 从Kafka读取数据 3.4.5 自定义Source 3.5 数据转换 3.5.1 map 3.5.2 flatMap 3.5.3 filter 3.5.4 keyBy 3.5.5 reduce 3.5.6 union 3.6 数据输出 3.6.1 输出到文件 3.6.2 输出到Socket 3.6.3 输出到Kafka 3.7 应用案例——词频统计 3.8 本章小结 3.9 课后习题 第4章 DataSet API 4.1 DataSet程序开发流程 4.2 执行环境 4.3 数据输入 4.3.1 从文件读取数据 4.3.2 从集合读取数据 4.3.3 从MySQL读取数据 4.4 数据转换 4.4.1 去重 4.4.2 连接 4.4.3 聚合 4.4.4 分组 4.4.5 分区 4.5 数据输出 4.5.1 输出到文件 4.5.2 输出到MySQL 4.6 应用案例——统计热门品牌Top10 4.7 本章小结 4.8 课后习题 第5章 时间与窗口 5.1 时间概念 5.2 窗口分类 5.3 键控和非键控窗口 5.4 窗口分配器 5.5 窗口函数 5.5.1 ReduceFunction 5.5.2 AggregateFunction 5.5.3 ProcessFunction 5.5.4 窗口函数结合使用 5.6 水位线 5.6.1 什么是水位线 5.6.2 使用水位线 5.6.3 应用案例—统计电商网站交易数据 5.7 窗口触发器 5.8 窗口驱逐器 5.8.1 内置驱逐器 5.8.2 自定义驱逐器 5.9 处理延迟数据 5.9.1 通过Allowed Lateness处理延迟数据 5.9.2 通过Side Outputs处理延迟数据 5.10 本章小结 5.11 课后习题 第6章 状态和容错机制 6.1 状态概述 6.2 状态管理 6.2.1 声明状态 6.2.2 定义状态描述器 6.2.3 操作状态 6.3 使用状态 6.3.1 使用键控状态 6.3.2 使用算子状态 6.4 Checkpoint 6.4.1 Checkpoint概述 6.4.2 配置Checkpoint 6.5 State Backend 6.6 故障恢复 6.7 本章小结 6.8 课后习题 第7章 Table API & SQL 上 7.1 Table程序结构 7.2 数据类型 7.3 执行环境 7.4 Catalog操作 7.4.1 注册Catalog 7.4.2 查看Catalog 7.4.3 使用Catalog 7.5 数据库操作 7.5.1 创建数据库 7.5.2 查看数据库 7.5.3 使用数据库 7.5.4 修改数据库 7.5.5 删除数据库 7.6 表操作 7.6.1 创建表 7.6.2 创建Table对象 7.6.3 查看表 7.6.4 修改表 7.6.5 修改Table对象 7.6.6 删除表 7.6.7 输出表 7.7 查询操作 7.7.1 基本查询 7.7.2 条件查询 7.7.3 去重查询 7.7.4 连接查询 7.7.5 集合查询 7.7.6 排序查询 7.7.7 分组查询 7.8 本章小结 7.9 课后习题 第8章 Table API & SQL 下 8.1 函数 8.1.1 内置函数 8.1.2 自定义函数 8.1.3 注册自定义函数 8.1.4 使用自定义函数 8.2 DataStream与Table对象的转换 8.3 时间属性 8.4 窗口操作 8.4.1 Group Window 8.4.2 Over Window 8.5 本章小结 8.6 课后习题 第9章 Flink CEP 9.1 Flink CEP基本概述 9.2 模式 9.2.1 个体模式 9.2.2 组合模式 9.3 模式的定义 9.3.1 定义个体模式 9.3.2 定义个体模式的条件 9.3.3 定义组合模式 9.3.4 模式组 9.3.5 匹配后跳过策略 9.4 使用模式检测数据流 9.5 处理超时事件 9.6 处理延迟事件 9.7 案例——直播平台检测刷屏用户 9.8 本章小结 9.9 课后习题