Flink SQL与DataStream:入门、进阶与实战
正版保障 假一赔十 可开发票
¥
78.02
6.0折
¥
129
全新
库存80件
作者羊艺超著
出版社机械工业出版社
ISBN9787111739029
出版时间2024-01
装帧平装
开本16开
定价129元
货号14617892
上书时间2024-10-07
商品详情
- 品相描述:全新
- 商品描述
-
目录
Contents目 录 前 言 第1章 初识Flink 1 1.1 Flink定位 1 1.1.1 Flink是什么 2 1.1.2 Flink对于数据的定义 3 1.1.3 Flink的3种应用场景 4 1.1.4 Flink的3个企业应用案例 7 1.2 Flink的核心特性 9 1.2.1 Flink的5个核心特性 9 1.2.2 3种流处理引擎特性的对比 10 1.3 Flink的API 11 1.3.1 Code API 11 1.3.2 关系型API 13 1.4 与Flink搭配使用的引擎 15 1.5 本章小结 16 第2章Flink WordCount作业开发 及运行 17 2.1 基础环境准备 17 2.2 创建一个Flink项目 18 2.3 Flink WordCount代码案例 21 2.4 Flink作业的骨架结构 24 2.5 本章小结 25 第3章Flink分布式架构及核心 概念 26 3.1分布式应用与非分布式应用的 异同 27 3.2 Flink作业的运行时架构 28 3.2.1 Flink作业提交部署流程 28 3.2.2 Client 30 3.2.3 JobManager 30 3.2.4 TaskManager 31 3.3 Flink作业的3种部署模式 31 3.3.1 Session模式 32 3.3.2 Per-Job模式 33 3.3.3 Application模式 35 3.4 Flink作业的2种资源提供框架 36 3.4.1 Standalone 36 3.4.2 YARN 40 3.5开发Flink作业时涉及的核心 概念 42 3.5.1 Function 44 3.5.2 Operator 44 3.5.3 算子并行度 46 3.5.4 Operator Chain 49 3.5.5 Task和SubTask 52 3.5.6 Task Slot和共享Task Slot 53 3.5.7 算子优选并行度 54 3.6 Flink Web UI 56 3.6.1 概览模块 57 3.6.2 Flink作业详情 58 3.7 本章小结 64 第4章 Flink DataStream API 65 4.1 什么是DataStream 65 4.2 执行环境 66 4.3 数据源 67 4.3.1从数据源存储引擎中读取数据 的API 67 4.3.2 从Socket中读取数据 69 4.3.3 从Kafka中读取数据 69 4.3.4 从自定义数据源中读取数据 74 4.4 数据简单转换 76 4.4.1 单流的3种数据简单转换 76 4.4.2 多流的4种数据简单转换 80 4.5 数据分组与聚合 84 4.5.1 KeyBy 85 4.5.2 Max、Min和Sum 88 4.5.3 Reduce 92 4.6 数据汇 95 4.6.1向数据汇存储引擎写数据的 API 95 4.6.2 向控制台输出数据 95 4.6.3 向Kafka写入数据 96 4.6.4 向自定义数据汇写入数据 99 4.7 算子间数据传输的8种策略 100 4.7.1 Forward 100 4.7.2 Rebalance 103 4.7.3 Shuff?le 106 4.7.4 KeyGroup 106 4.7.5 Rescale 107 4.7.6 Broadcast 108 4.7.7 Global 110 4.7.8 Custom Partition 110 4.8 数据异步I/O处理 112 4.8.1同步I/O处理导致作业 低吞吐 112 4.8.2同步I/O处理低吞吐的4种 解决方案 113 4.8.3 异步I/O处理原理 113 4.8.4 异步I/O处理API 114 4.8.5异步I/O处理API的注意 事项 117 4.9 RichFunction 118 4.10 数据序列化 121 4.10.1Flink数据序列化机制的 诞生过程 122 4.10.2Flink支持的7种数据 类型 123 4.10.3TypeInformation与 TypeSerializer 125 4.10.4Java Lambda表达式对数据 序列化的影响 127 4.10.5 使用注意事项 129 4.11 工具类及Debug建议 131 4.11.1 ParameterTool 131 4.11.2 Debug建议 132 4.12 本章小结 132 第5章Flink的时间语义和 时间窗口 134 5.1 时间语义和时间窗口概述 134 5.2 时间窗口 137 5.2.1 Flink中的时间窗口 138 5.2.2 为什么需要时间窗口 139 5.2.3时间窗口程序的骨架 结构 141 5.2.4 时间窗口的计算机制 143 5.2.5 窗口分配器 145 5.2.6 窗口处理函数 154 5.2.7 窗口触发器 169 5.3 时间语义 176 5.3.1 处理时间 177 5.3.2 事件时间 178 5.3.3 摄入时间 180 5.4 Watermark 180 5.4.1 Watermark的诞生背景 180 5.4.2 Watermark的定义及特点 185 5.4.3 Watermark的传输策略 187 5.4.4使用Watermark缓解数据 乱序问题 193 5.4.5 生成Watermark的API 196 5.5 双流数据时间窗口关联 204 5.5.1 时间窗口关联 205 5.5.2 时间窗口CoGroup操作 208 5.5.3 时间区间关联 210 5.6 计数窗口 213 5.7生产中的常见问题及解决 方案 215 5.7.1事件时间窗口不触发计算的 3种原因及解决方案 216 5.7.2事件时间窗口数据乱序问题 的体系化解决方案 223 5.7.3windowAll()方法导致数据 倾斜问题的解决方案 230 5.7.4扩展思考?:Watermark是否 只能从时间戳中取值 233 5.8 本章小结 233 第6章Flink状态原理及异常 容错机制 235 6.1 Flink有状态计算 235 6.1.1 状态及有状态计算的定义 235 6.1.2Flink有状态计算的 4类应用 237 6.1.3传统有状态计算方案应用于 大数据场景时存在的 3个问题 237 6.1.4Flink实现有状态计算的 思路 240 6.1.5Flink实现有状态计算面临的 2个难题 248 6.1.6 Flink有状态计算总结 251 6.2 Flink状态接口 252 6.2.1 Flink状态的分类 252 6.2.2 算子状态 257 6.2.3 键值状态 269 6.2.4 广播状态 286 6.2.5 键值状态保留时长 294 6.2.6 Flink状态接口总结 300 6.3 Flink状态管理 301 6.3.1单机应用的准确一次数据 处理 302 6.3.2分布式应用通用的准确一次 数据处理 307 6.3.3 Flink Checkpoint 320 6.3.4 Flink Savepoint 330 6.3.5端到端的准确一次数据 处理 336 6.4 Flink状态后端 339 6.4.1 HashMap状态后端 339 6.4.2 RocksDB状态后端 341 6.4.3 状态后端的注意事项 347 6.5 Flink故障重启策略 348 6.6 本章小结 350 第7章 Flink有状态流处理API 351 7.1 ProcessFunction 351 7.1.1促使ProcessFunction诞生的 两个问题 352 7.1.2 ProcessFunction的定义 355 7.1.3解决窗口使用起来不灵活和 分流成本高的问题 358 7.25种不同应用场景下的处理 函数 366 7.3 KeyedProcessFunction 367 7.4 本章小结 367 第8章Flink Table API和 SQL API 369 8.1直接上手Table API和 SQL API 370 8.1.1 运行环境依赖 370 8.1.2Table API和SQL API 案例 371 8.1.3Table API和SQL API的 关系 375 8.2Table API和SQL API的 核心API及功能 377 8.2.1 执行环境 377 8.2.2 表 381 8.3使用SQL实现流处理的核心 技术 392 8.3.1使用SQL实现流处理的 思路 392 8.3.2 动态表与连续查询 393 8.3.3动态表与连续查询的执行 案例 394 8.3.4 动态表映射为数据流 399 8.3.5Table API和SQL API与DataStream API集成 403 8.4 本章小结 409 第9章 Flink SQL API语法 410 9.1 SQL数据类型 410 9.1.1 原子数据类型 410 9.1.2 复合数据类型 413 9.1.3 用户自定义数据类型 413 9.2 CREATE TABLE 415 9.3 WITH 422 9.4 SELECT和WHERE 423 9.5 SELECT DISTINCT 425 9.6 时间窗口聚合 427 9.6.1 窗口表值函数 428 9.6.2 分组窗口聚合函数 435 9.6.3 时间窗口聚合的时区问题 439 9.7 GROUP BY分组聚合 440 9.8 流关联 446 9.8.1 常规关联 446 9.8.2 时间窗口关联 449 9.8.3 时间区间关联 452 9.9 维表关联 456 9.9.1 表函数 456 9.9.2 数组扩展 458 9.9.3 查询关联 459 9.10 TopN排序 461 9.11 Deduplication去重 466 9.12 窗口TopN 470 9.13 Over聚合 471 9.14 其他操作 475 9.14.1 集合操作 475 9.14.2 元数据管理操作 475 9.15 EXPLAIN 476 9.16 SQL Hints 477 9.17 本章小结 478 第10章 Flink SQL API函数 479 10.1 函数的使用案例 479 10.2 函数的分类 480 10.2.1 系统内置函数 481 10.2.2 用户自定义函数 481 10.3 开发用户自定义函数 482 10.3.1 标量函数 483 10.3.2 表函数 486 10.3.3 聚合函数 487 10.3.4 异步表函数 490 10.4 本章小结 490 第11章 Flink SQL API参数配置及 性能调优 491 11.1 参数配置 491 11.1.1 运行时参数 491 11.1.2 优化器参数 494 11.1.3 表参数 494 11.2 性能调优 495 11.2.1 微批处理的优化原理 495 11.2.2去重场景BitMap复用的 优化原理 495 11.2.3 两阶段聚合的优化原理 497 11.2.4去重计算的分桶聚合的 优化原理 498 11.3 本章小结 498
主编推荐
(1)作者背景资深:某头部短视频平台Flink专家,拥有多年流式计算开发、优化、保障和治理经验,对Flink大数据计算引擎有着深入的理解。 (2)作者经验丰富:有从0到1使用Flink SQL建设实时数仓的经验,在Flink场景化应用方面有丰富的经验,能够使用Flink等技术组件解决千万级别QPS的实时数据场景下的痛点问题。 (3)双重视角展开:从Flink使用和定制开发双重视角,循序渐进讲解Flink的分布式系统架构设计、流计算API设计、时间处理、状态管理等核心技术的原理和实现。 (4)理论深入详细:除了Flink的架构设计和核心技术的原理外,本书还详细讲解了SQL API、Table API、DataStream API 和有状态流处理 API四大API的细节。 (5)注重工程实战:用大量案例和图表详解用Java和Flink SQL开发Flink流处理作业的方法和过程,掌握工程化实践能力。
精彩内容
内容简介 这是一本从使用和定制开发双重视角,循序渐进地讲解Flink的分布式系统架构设计、流计算API设计、时间处理、状态管理等核心技术的原理和实现的著作。 它面向Flink的初学者,内容沿着基础知识、实际问题和解决方案这条主线展开,不仅层层剖析了Flink学习中的重点和难点,而且还通过大量案例展示了如何快速获得工程化实践能力。 全书共11章,主要内容如下: (1)Flink基础知识(第1、2章) 主要介绍了Flink的定位、核心特性、API分类,演示了如何搭建Flink作业的基础环境、如何创建一个Flink项目以及如何开发入门应用程序WordCount,并结合该应用程序说明了常见Flink作业的骨架结构。
— 没有更多了 —
以下为对购买帮助不大的评价