计算机
类型
可以朗读
语音朗读
375千字
字数
2023-10-01
发行日期
展开全部
主编推荐语
一本书讲透Flink。
内容简介
一本从使用和定制开发双重视角,循序渐进地讲解Flink的分布式系统架构设计、流计算API设计、时间处理、状态管理等核心技术的原理和实现的著作。
本书面向Flink的初学者,内容沿着基础知识、实际问题和解决方案这条主线展开,不仅层层剖析了Flink学习中的重点和难点,而且还通过大量案例展示了如何快速获得工程化实践能力。
目录
- 版权信息
- 前言
- 第1章 初识Flink
- 1.1 Flink定位
- 1.1.1 Flink是什么
- 1.1.2 Flink对于数据的定义
- 1.1.3 Flink的3种应用场景
- 1.1.4 Flink的3个企业应用案例
- 1.2 Flink的核心特性
- 1.2.1 Flink的5个核心特性
- 1.2.2 3种流处理引擎特性的对比
- 1.3 Flink的API
- 1.3.1 Code API
- 1.3.2 关系型API
- 1.4 与Flink搭配使用的引擎
- 1.5 本章小结
- 第2章 Flink WordCount作业开发及运行
- 2.1 基础环境准备
- 2.2 创建一个Flink项目
- 2.3 Flink WordCount代码案例
- 2.4 Flink作业的骨架结构
- 2.5 本章小结
- 第3章 Flink分布式架构及核心概念
- 3.1 分布式应用与非分布式应用的异同
- 3.2 Flink作业的运行时架构
- 3.2.1 Flink作业提交部署流程
- 3.2.2 Client
- 3.2.3 JobManager
- 3.2.4 TaskManager
- 3.3 Flink作业的3种部署模式
- 3.3.1 Session模式
- 3.3.2 Per-Job模式
- 3.3.3 Application模式
- 3.4 Flink作业的2种资源提供框架
- 3.4.1 Standalone
- 3.4.2 YARN
- 3.5 开发Flink作业时涉及的核心概念
- 3.5.1 Function
- 3.5.2 Operator
- 3.5.3 算子并行度
- 3.5.4 Operator Chain
- 3.5.5 Task和SubTask
- 3.5.6 Task Slot和共享Task Slot
- 3.5.7 算子最大并行度
- 3.6 Flink Web UI
- 3.6.1 概览模块
- 3.6.2 Flink作业详情
- 3.7 本章小结
- 第4章 Flink DataStream API
- 4.1 什么是DataStream
- 4.2 执行环境
- 4.3 数据源
- 4.3.1 从数据源存储引擎中读取数据的API
- 4.3.2 从Socket中读取数据
- 4.3.3 从Kafka中读取数据
- 4.3.4 从自定义数据源中读取数据
- 4.4 数据简单转换
- 4.4.1 单流的3种数据简单转换
- 4.4.2 多流的4种数据简单转换
- 4.5 数据分组与聚合
- 4.5.1 KeyBy
- 4.5.2 Max、Min和Sum
- 4.5.3 Reduce
- 4.6 数据汇
- 4.6.1 向数据汇存储引擎写数据的API
- 4.6.2 向控制台输出数据
- 4.6.3 向Kafka写入数据
- 4.6.4 向自定义数据汇写入数据
- 4.7 算子间数据传输的8种策略
- 4.7.1 Forward
- 4.7.2 Rebalance
- 4.7.3 Shuffle
- 4.7.4 KeyGroup
- 4.7.5 Rescale
- 4.7.6 Broadcast
- 4.7.7 Global
- 4.7.8 Custom Partition
- 4.8 数据异步I/O处理
- 4.8.1 同步I/O处理导致作业低吞吐
- 4.8.2 同步I/O处理低吞吐的4种解决方案
- 4.8.3 异步I/O处理原理
- 4.8.4 异步I/O处理API
- 4.8.5 异步I/O处理API的注意事项
- 4.9 RichFunction
- 4.10 数据序列化
- 4.10.1 Flink数据序列化机制的诞生过程
- 4.10.2 Flink支持的7种数据类型
- 4.10.3 TypeInformation与TypeSerializer
- 4.10.4 Java Lambda表达式对数据序列化的影响
- 4.10.5 使用注意事项
- 4.11 工具类及Debug建议
- 4.11.1 ParameterTool
- 4.11.2 Debug建议
- 4.12 本章小结
- 第5章 Flink的时间语义和时间窗口
- 5.1 时间语义和时间窗口概述
- 5.2 时间窗口
- 5.2.1 Flink中的时间窗口
- 5.2.2 为什么需要时间窗口
- 5.2.3 时间窗口程序的骨架结构
- 5.2.4 时间窗口的计算机制
- 5.2.5 窗口分配器
- 5.2.6 窗口处理函数
- 5.2.7 窗口触发器
- 5.3 时间语义
- 5.3.1 处理时间
- 5.3.2 事件时间
- 5.3.3 摄入时间
- 5.4 Watermark
- 5.4.1 Watermark的诞生背景
- 5.4.2 Watermark的定义及特点
- 5.4.3 Watermark的传输策略
- 5.4.4 使用Watermark缓解数据乱序问题
- 5.4.5 生成Watermark的API
- 5.5 双流数据时间窗口关联
- 5.5.1 时间窗口关联
- 5.5.2 时间窗口CoGroup操作
- 5.5.3 时间区间关联
- 5.6 计数窗口
- 5.7 生产中的常见问题及解决方案
- 5.7.1 事件时间窗口不触发计算的3种原因及解决方案
- 5.7.2 事件时间窗口数据乱序问题的体系化解决方案
- 5.7.3 windowAll()方法导致数据倾斜问题的解决方案
- 5.7.4 扩展思考:Watermark是否只能从时间戳中取值
- 5.8 本章小结
- 第6章 Flink状态原理及异常容错机制
- 6.1 Flink有状态计算
- 6.1.1 状态及有状态计算的定义
- 6.1.2 Flink有状态计算的4类应用
- 6.1.3 传统有状态计算方案应用于大数据场景时存在的3个问题
- 6.1.4 Flink实现有状态计算的思路
- 6.1.5 Flink实现有状态计算面临的2个难题
- 6.1.6 Flink有状态计算总结
- 6.2 Flink状态接口
- 6.2.1 Flink状态的分类
- 6.2.2 算子状态
- 6.2.3 键值状态
- 6.2.4 广播状态
- 6.2.5 键值状态保留时长
- 6.2.6 Flink状态接口总结
- 6.3 Flink状态管理
- 6.3.1 单机应用的精确一次数据处理
- 6.3.2 分布式应用通用的精确一次数据处理
- 6.3.3 Flink Checkpoint
- 6.3.4 Flink Savepoint
- 6.3.5 端到端的精确一次数据处理
- 6.4 Flink状态后端
- 6.4.1 HashMap状态后端
- 6.4.2 RocksDB状态后端
- 6.4.3 状态后端的注意事项
- 6.5 Flink故障重启策略
- 6.6 本章小结
- 第7章 Flink有状态流处理API
- 7.1 ProcessFunction
- 7.1.1 促使ProcessFunction诞生的两个问题
- 7.1.2 ProcessFunction的定义
- 7.1.3 解决窗口使用起来不灵活和分流成本高的问题
- 7.2 5种不同应用场景下的处理函数
- 7.3 KeyedProcessFunction
- 7.4 本章小结
- 第8章 Flink Table API和SQL API
- 8.1 直接上手Table API和SQL API
- 8.1.1 运行环境依赖
- 8.1.2 Table API和SQL API案例
- 8.1.3 Table API和SQL API的关系
- 8.2 Table API和SQL API的核心API及功能
- 8.2.1 执行环境
- 8.2.2 表
- 8.3 使用SQL实现流处理的核心技术
- 8.3.1 使用SQL实现流处理的思路
- 8.3.2 动态表与连续查询
- 8.3.3 动态表与连续查询的执行案例
- 8.3.4 动态表映射为数据流
- 8.3.5 Table API和SQL API与DataStream API集成
- 8.4 本章小结
- 第9章 Flink SQL API语法
- 9.1 SQL数据类型
- 9.1.1 原子数据类型
- 9.1.2 复合数据类型
- 9.1.3 用户自定义数据类型
- 9.2 CREATE TABLE
- 9.3 WITH
- 9.4 SELECT和WHERE
- 9.5 SELECT DISTINCT
- 9.6 时间窗口聚合
- 9.6.1 窗口表值函数
- 9.6.2 分组窗口聚合函数
- 9.6.3 时间窗口聚合的时区问题
- 9.7 GROUP BY分组聚合
- 9.8 流关联
- 9.8.1 常规关联
- 9.8.2 时间窗口关联
- 9.8.3 时间区间关联
- 9.9 维表关联
- 9.9.1 表函数
- 9.9.2 数组扩展
- 9.9.3 查询关联
- 9.10 TopN排序
- 9.11 Deduplication去重
- 9.12 窗口TopN
- 9.13 Over聚合
- 9.14 其他操作
- 9.14.1 集合操作
- 9.14.2 元数据管理操作
- 9.15 EXPLAIN
- 9.16 SQL Hints
- 9.17 本章小结
- 第10章 Flink SQL API函数
- 10.1 函数的使用案例
- 10.2 函数的分类
- 10.2.1 系统内置函数
- 10.2.2 用户自定义函数
- 10.3 开发用户自定义函数
- 10.3.1 标量函数
- 10.3.2 表函数
- 10.3.3 聚合函数
- 10.3.4 异步表函数
- 10.4 本章小结
- 第11章 Flink SQL API参数配置及性能调优
- 11.1 参数配置
- 11.1.1 运行时参数
- 11.1.2 优化器参数
- 11.1.3 表参数
- 11.2 性能调优
- 11.2.1 微批处理的优化原理
- 11.2.2 去重场景BitMap复用的优化原理
- 11.2.3 两阶段聚合的优化原理
- 11.2.4 去重计算的分桶聚合的优化原理
- 11.3 本章小结
展开全部
出版方
机械工业出版社
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。