《实时分析实战:构建实时流处理应用和分析系统》马克·尼达姆【文字版_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
浏览器不支持脚本!购买本书:当当图书商城 | | 孔夫子旧书
摘要:在大数据和云计算迅速发展的背景下,实时流处理已经成为现代企业数据分析的核心技术。《实时分析实战:构建实时流处理应用和分析系统》由马克·尼达姆撰写,系统性地阐述了实时流处理的理论基础、架构设计、技术实现和实际应用案例。本书以实践为导向,通过深入剖析实时数据处理的关键问题,展示了如何构建高效、可靠、可扩展的实时分析系统。读者不仅可以掌握实时数据流的处理方法,还能了解流处理平台的选择与优化技巧,以及在实际业务场景中提升数据决策能力的策略。整篇作品内容翔实、案例丰富,兼顾理论与实践,使技术人员、架构师和数据分析师能够在复杂数据环境下快速实现实时数据分析解决方案,为企业创造数据价值提供切实指导。
1、实时流处理概念解析
实时流处理是指对不断生成的数据流进行即时分析和处理的技术。与批处理不同,实时流处理强调低延迟和持续处理能力,使数据在生成的同时被分析,从而实现即时决策。书中对实时流处理的定义、特性以及发展背景进行了详细阐述,帮助读者建立系统的概念框架。
作者指出,实时流处理的核心在于数据的连续性和高并发处理能力。数据流的高速到达要求系统具备极高的吞吐量和稳定性,同时需要对异常数据进行快速响应。书中通过实例演示了如何从理论到实践逐步理解数据流的处理逻辑。
此外,书中对实时流处理与传统批处理的区别进行了对比分析。批处理适合处理历史数据和大规模计算,而实时流处理更适用于需要即时反馈的场景,如金融交易监控、网络安全防护和用户行为分析。这一分析为后续系统设计提供了理论基础。
2、流处理系统架构设计
在系统架构层面,书中提出了构建实时流处理应用的整体设计理念,包括数据采集、消息队列、处理引擎以及结果输出模块的完整链路。作者强调架构的模块化设计,有助于系统的可维护性和扩展性。
具体而言,数据采集模块负责从多源系统获取实时数据,并通过消息队列进行缓冲和分发。书中详细分析了Kafka、RabbitMQ等流式中间件的特点与应用场景,为系统设计提供了实践参考。
处理引擎是实时流处理系统的核心部分,作者重点介绍了Apache Flink、Spark Streaming等流处理框架的应用与性能优化方法。通过案例分析,展示了如何选择适合的计算模型,实现低延迟、高吞吐的数据处理。
3、技术实现与优化方法
技术实现方面,书中详细讲解了实时流处理的编程模型、状态管理、时间语义以及窗口操作等关键技术。作者通过代码示例展示了事件时间与处理时间的区别,以及如何利用窗口函数进行聚合和计算。
系统优化是实时流处理成功的关键。书中指出,数据倾斜、状态膨胀和资源瓶颈是常见问题,需要通过负载均衡、状态压缩以及水平扩展等手段解决。作者结合实际案例分析了性能调优策略的具体实现效果。
此外,容错机制也是技术实现的重要组成部分。书中介绍了检查点机制、状态快照以及重启策略,确保系统在出现节点故障时能够快速恢复数据处理,从而保证实时分析的连续性和可靠性。
4、实际应用与案例分析
书中提供了丰富的实际应用案例,涵盖金融风控、物联网数据分析、在线广告推荐和网络安全监控等多个领域。通过真实案例,读者可以理解实时流处理在业务场景中的具体价值。
在金融风控案例中,作者演示了如何通过实时分析交易数据,实现欺诈行为的快速识别与拦截。系统能够在毫秒级时间内完成数据处理,并触发警报,为风险控制提供即时支持。
物联网和智能设备数据分析案例展示了实时流处理在海量传感器数据处理中的应用。通过数据清洗、聚合和实时可视化,企业能够实现设备状态监控和预测性维护,从而提升运营效率和降低成本。
总结:
《实时分析实战:构建实时流处理应用和分析系统》马克·尼达姆通过理论与实践结合的方式,系统地讲解了实时流处理的核心概念、架构设计、技术实现以及实际应用案例。书中详细分析了实时数据处理的关键技术,并提供了优化策略和容错机制,使读者能够在复杂数据环境下快速构建高效、可靠的实时分析系统。
整本书不仅适合技术人员掌握实时流处理技能,也为企业架构师和数据分析师提供了切实可行的解决方案。通过案例分析与实践指导,读者可以全面理解实时数据处理的价值和应用前景,从而在实际业务中实现数据驱动的即时决策与价值创造。
本文由nayona.cn整理
联系我们

关注公众号

微信扫一扫
支付宝扫一扫 