展开全部

主编推荐语

一本书讲透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、科普以及教材、教辅等领域。