《实时分析实战:构建实时流处理应用和分析系统》马克·尼达姆【文字版_PDF电子书_下载】

《实时分析实战:构建实时流处理应用和分析系统》封面图片

内容简介:

本书为想要设计、构建和维护实时分析应用程序的人员(包括数据工程师、架构师和技术领导者)提供了结构合理的基础知识。第1章和第2章简要介绍实时分析,并概述可以构建的实时分析应用程序的类型。第3章介绍一家虚构的比萨公司,该公司已经建立了流处理基础设施,但尚未实现任何实时分析功能。 第4~10章展示如何为这家比萨公司实现不同类型的实时分析应用程序。第11~13章介绍将应用程序投入生产时的注意事项、实时分析的一些真实使用案例,以及未来几年该领域可能会出现的情况。

作者简介:

Mark Needham是Neo4j的图形倡导者和开发人员关系工程师。Mark帮助用户使用图形和Neo4j,为具有挑战性的数据问题构建复杂的解决方案。Mark在图数据方面有很深的专业知识,之前曾帮助构建Neo4j的因果聚类系统。

目  录:

目 录

序1

前言3

第1章 实时分析简介7

1.1 什么是事件流7

1.2 理解流数据9

1.3 什么是实时分析9

1.4 实时分析的优势11

1.4.1 新的收入来源11

1.4.2 及时洞察客户12

1.4.3 降低基础设施成本12

1.4.4 改善整体客户体验12

1.5 实时分析用例12

1.5.1 面向用户的分析13

1.5.2 个性化13

1.5.3 指标14

1.5.4 异常检测和根本原因分析14

1.5.5 可视化14

1.5.6 即时分析15

1.5.7 日志分析/文本搜索15

1.6 对实时分析应用程序进行分类15

1.6.1 面向内部与面向外部16

1.6.2 面向机器与面向人类17

1.7 本章小结17

第2章 实时分析生态系统19

2.1 定义实时分析生态系统19

2.2 经典流处理技术栈21

2.2.1 复杂事件处理21

2.2.2 大数据时代22

2.3 现代流处理技术栈25

2.3.1 事件生成器27

2.3.2 流处理数据平台29

2.3.3 流处理层31

2.3.4 服务层33

2.3.5 前端37

2.4 本章小结38

第3章 介绍AATD:比萨外卖店的实时分析39

3.1 现有架构40

3.2 设置42

3.2.1 MySQL43

3.2.2 Apache Kafka46

3.2.3 ZooKeeper47

3.2.4 订单服务48

3.2.5 启动组件49

3.3检查数据49

3.4 实时分析的应用53

3.5 本章小结54

第4章 使用Kafka Streams进行查询55

4.1 什么是Kafka Streams56

4.2 什么是Quarkus58

4.3 Quarkus应用程序58

4.3.1 安装Quarkus CLI58

4.3.2 创建Quarkus应用程序59

4.3.3 创建拓扑结构60

4.3.4 查询键值存储62

4.3.5 创建HTTP端点65

4.4 运行应用程序66

4.5 查询HTTP端点66

4.6 Kafka Streams的局限性66

4.7 本章小结67

第5章 服务层—Apache Pinot68

5.1 为什么不能使用其他流处理器69

5.2 为什么不能使用数据仓库69

5.3 什么是Apache Pinot69

5.4 Pinot如何对数据进行建模和存储71

5.4.1 数据模式71

5.4.2 表72

5.5 配置72

5.6 数据摄取73

5.7 Pinot数据浏览器76

5.8 索引78

5.9 更新Web应用程序80

5.10 本章小结83

第6章 构建实时分析仪表盘84

6.1 仪表盘架构84

6.2 什么是 Streamlit85

6.3 配置85

6.4构建仪表盘86

6.5 本章小结94

第7章 通过CDC获取产品变化95

7.1 从业务数据库获取更改信息95

7.2 CDC96

7.2.1 为什么需要CDC96

7.2.2 什么是CDC97

7.2.3 实施CDC的策略97

7.2.4 基于日志的数据采集98

7.2.5 CDC系统的需求99

7.2.6 Debezium 100

7.3 将CDC应用于AATD101

7.3.1 配置101

7.3.2 将 Debezium 连接到 MySQL102

7.3.3查询商品数据流103

7.3.4 更新产品104

7.4 本章小结106

第 8 章 使用Kafka Streams连接流107

8.1 使用Kafka Streams丰富订单数据107

8.2 将订单项添加到 Pinot113

8.3更新订单服务信息116

8.4 刷新 Streamlit 仪表盘121

8.5 本章小结123

第9章 服务层的插入更新124

9.1 订单状态124

9.2 丰富订单流信息126

9.3 Apache Pinot 的插入更新129

9.4 更新订单服务133

9.4.1 创建用户资源文件134

9.4.2 添加一个所有用户的端点134

9.4.3 为用户端点添加订单135

9.4.4 添加单个订单端点136

9.4.5 实现跨资源共享139

9.5 前端应用程序139

9.6 仪表盘上的订单状态142

9.6.1 每个订单状态的耗时142

9.6.2 可能被延误的订单144

9.7 本章小结148

第10章 地理空间查询149

10.1 交付状态150

10.2 更新 Apache Pinot152

10.2.1 订单152

10.2.2 交付状态154

10.3 更新订单服务161

10.3.1 个人订单162

10.3.2 按地区划分的延迟订单164

10.3.3 使用新的 API 端点166

10.4 本章小结167

第11章 生产环境中的注意事项169

11.1 前期准备169

11.1.1 容量规划169

11.1.2 数据分区171

11.1.3 吞吐量173

11.1.4 数据保留174

11.1.5 数据粒度175

11.1.6 总数据大小175

11.1.7 复制因子176

11.2 部署平台176

11.2.1 自身技能176

11.2.2 数据隐私和安全176

11.2.3 成本177

11.2.4 控制178

11.3 后期管理178

11.3.1 监控和报警178

11.3.2 数据治理179

11.4 本章小结180

第12章 现实世界中的实时分析181

12.1 内容推荐(专业社交网络)181

12.1.1 问题182

12.1.2 解决方案182

12.1.3 收益183

12.2 运营分析(流媒体服务)184

12.2.1 问题185

12.2.2 解决方案185

12.2.3 收益187

12.3 实时广告分析(网上商城)187

12.3.1 问题188

12.3.2 解决方案188

12.3.3 收益189

12.4 面向用户的分析(协作平台)190

12.4.1 问题190

12.4.2 解决方案191

12.4.3 收益192

12.5 本章小结192

第13章 实时分析的未来193

13.1 边缘分析193

13.2 计算存储分离194

13.3 湖仓一体196

13.4 实时数据可视化197

13.5 流式数据库198

13.6 流数据平台即服务199

13.7 反向ETL200

13.8 本章小结201