新書推薦:
《
就业、利息和货币通论(徐毓枬译本)(经济学名著译丛)
》
售價:HK$
67.2
《
瘦肝
》
售價:HK$
99.7
《
股票大作手回忆录
》
售價:HK$
55.8
《
秩序四千年:人类如何运用法律缔造文明(世界重归混乱,文明岌岌可危,法律与秩序是我们仅有的武器。穿越时间,鸟瞰全球,一部波澜壮阔的人类文明史)
》
售價:HK$
154.6
《
民法典1000问
》
售價:HK$
99.7
《
国术健身 易筋经
》
售價:HK$
33.4
《
古罗马800年
》
售價:HK$
188.2
《
写出心灵深处的故事:踏上疗愈之旅(修订版)(创意写作书系)
》
售價:HK$
66.1
|
編輯推薦: |
本书带领读者深入探索实时分析系统,包括这些系统的核心功能以及它们所解决的复杂问题。通过阅读本书,数据工程师将获得使用Kafka、Google Pub/Sub和AWS Kinesis等事件处理系统进行数据流实时分析的实践技能。洞察数据的速度越快,就越能迅捷地识别业务动态,并及时做出响应。本书提供了对实时分析领域的全面概览,并介绍了构建实时应用程序所需的专业知识。书中提供了一系列实践教程,并详细演示了如何融合多种软件产品来打造一个虚拟比萨外卖服务的实时分析应用程序,从而将理论与实践完美结合。
|
內容簡介: |
本书为想要设计、构建和维护实时分析应用程序的人员(包括数据工程师、架构师和技术领导者)提供了结构合理的基础知识。第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 面向用户的分析(协作
|
內容試閱:
|
前言
本书是在现有数据基础设施上实现实时分析应用程序的实用指南。它的目标读者是具有一定流数据处理经验或者想要熟悉该领域的数据工程师、数据架构师和应用程序开发人员。
在第 1 章和第 2 章中,我们对该主题进行介绍,并概述可以构建的实时分析应用程序的类型。除此之外,我们还将描述可能用到的产品 / 工具类型,并解释如何为任务选择合适的工具,以及那些可能不需要工具的情况。
在第 3 章中,我们介绍一家虚构的比萨公司,该公司已经建立了流处理基础设施,但尚未实现任何实时分析功能。接下来的 7 章将展示如何为这家比萨公司实现不同类型的实时分析应用程序。如果你有兴趣动手实践,这些章节将非常适合你,希望你能从中获得一些想法(和代码),并将其应用到自己的项目中。
在本书的最后,我们将介绍把应用程序投入生产时的注意事项、实时分析的一些真实用例,以及通过对实时分析软件 Crystal Ball 的关注来了解未来几年该领域可能会出现的情况。
排版约定
本书中使用以下排版约定:
斜体(Italic)
表示新的术语、URL、电子邮件地址、文件名和文件扩展名。
等宽字体(Constant width)
用于程序清单,以及段落中的程序元素,例如,变量名、函数名、数据库、数据类型、环境变量、语句以及关键字。
等宽粗体(Constant width bold)
表示应由用户直接输入的命令或其他文本。
等宽斜体(Constant width italic)
表示应由用户提供的值或由上下文确定的值替换的文本。
该图示表示提示或建议。
该图示表示一般性说明。
示例代码
可以从 https://oreil.ly/RTA-github 下载补充材料(示例代码、练习、勘误等)。
这里的代码是为了帮助你更好地理解本书的内容。通常,可以在程序或文档中使用本书中的代码,而不需要联系 O’Reilly 获得许可,除非需要大段地复制代码。例如,使用本书中所提供的几个代码片段来编写一个程序不需要得到我们的许可,但销售或发布 O’Reilly 的示例代码则需要获得许可。引用本书的示例代码来回答问题也不需要许可,将本书中的很大一部分示例代码放到自己的产品文档中则需要获得许可。
非常欢迎读者使用本书中的代码,希望(但不强制)注明出处。注明出处时包含书名、作者、出版社和 ISBN,例如:Building Real-Time Analytics Systems,作者 Mark Needham,由 O’Reilly 出版,书号 978-1-098-13879-0。
如果读者觉得对示例代码的使用超出了上面所给出的许可范围,欢迎通过permissions@oreilly.com 联系我们。
O’Reilly 在线学习平台(O’Reilly Online Learning)
40 多年来,O’Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O’Reilly 的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及 O’Reilly和 200 多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http://oreilly.com。
如何联系我们
对于本书,如果有任何意见或疑问,请按照以下地址联系本书出版商。
美国:
O’Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中国:
北京市西城区西直门南大街 2 号成铭大厦 C 座 807 室(100035)
奥莱利技术咨询(北京)有限公司
要询问技术问题或对本书提出建议,请发送电子邮件至 errata@oreilly.com.cn。
本书配套网站 https://oreil.ly/building-RTA 上列出了勘误表、示例以及其他信息。
关于书籍和课程的新闻和信息,请访问我们的网站 http://oreilly.com。
我们在 LinkedIn 上的地址:https://linkedin.com/company/oreilly-media
我们在 Twitter 上的地址:http://twitter.com/oreillymedia
我们在 YouTube 上的地址:http://youtube.com/oreillymedia
致谢
写这本书是一次令人振奋的旅程,我衷心感谢那些一路上为我提供支持、智慧和鼓励的人。
首先,我要向实时分析领域的杰出思想领袖 Dunith Dhanushka 表示衷心的感谢。他富有洞察力的博客文章和在 Current 2022 上引人入胜的演讲,是本书宝贵的灵感来源,塑造了本书的重要部分。与他发人深省的对话不仅加深了我对实时分析技术栈复杂性的理解,还指导我完善了在手稿中呈现这些概念的方式。
我也非常感谢 Hubert Dulay,作为本书的技术审稿人,他慷慨地分享了他的专业知识。他敏锐的眼光和精辟的建议对于确保本书所呈现内容的准确性和清晰性至关重要。Hubert 提出了许多建设性反馈,在提升本书的整体质量方面起到了至关重要的作用,感谢他为本书做出的重大贡献。
|
|