设计数据密集型应用(注释版)
北京清数教育科技有限公司 译
出版时间:2026年07月
页数:767
“这本书太棒了。它为理论和工程实践之间的巨大鸿沟建立了一个有效的桥梁。我真心希望这本书能流传十多年,这样我就可以通过阅读本书来修正我一路走来所犯的各种错误。”
——杰伊·克雷普斯
Apache Kafka创建者,Confluent的CEO
“软件工程师们都应该阅读这本书,这本是少有的一本能够帮助软件开发者将理论与实际结合起来的书,它使得软件工程师能够做出更加明智的决定,并且设计和实现出优秀的架构和系统。”
——凯文·斯科特
微软公司CTO
数据是当今系统设计中诸多挑战的核心,其中有很多需要解决的问题,例如可扩展性、一致性、可靠性、效率和可维护性。此外,我们还有很多功能强大的工具,包括关系数据库、NoSOL数据存储、流或批处理以及各种消息系统。那么如何针对你的应用作出正确的选择?如何选择和组合这些工具才能使得它们发挥更大的作用呢?
在这本内容翔实、概念全面的指南中,作者Martin将带你亲身体验各种数据处理和数据存储技术的利弊,使得你在多样化的工具中如鱼得水。软件的更新迭代在持续进行中,但万变不离其宗。有了这本书,软件工程师和架构师将学习如何将想法付诸实践,以及如何在现代应用程序中充分利用数据。
● 深入学习常用系统的内部机制,并学习如何高效地应用这些技术。
● 分析各种工具的优缺点,帮助作出更加明智的选择。
● 解析如何寻找一致性、可扩展性、容错和复杂度之间平衡点。
● 介绍作为现代数据库基石的分布式系统的研究进展。
● 窥探并学习在线服务的背后技术。
- Chapter 1 Reliable, Scalable, and Maintainable Applications/可靠性,可扩展性,可维护性
- Thinking about Data Systems/数据系统深思
- Reliability/可靠性
- Scalability/可扩展性
- Maintainability/可维护性
- Summary
- References
- Chapter 2 Data Models and Query Languages/数据模型与查询语言
- Relational Model Versus Document Model/关系模型与文档模型
- Query Languages for Data/数据查询语言
- Summary/本章小结
- References
- Chapter 3 Storage and Retrieva/存储与检索
- Data Structures That Power Your Database/驱动数据库的数据结构
- Transaction Processing or Analytics?
- Column-Oriented Storage
- Summary/本章小结
- References
- Chapter 4 Encoding and Evolution/编码与演化
- Formats for Encoding Data/数据编码格式
- Modes of Dataflow/数据流的类型
- Summary/本章小结
- References
- Chapter 5 Replication/复制
- Leaders and Followers/领导者与追随者
- Multi-Leader Replication/多主复制
- Leaderless Replication/无主复制
- Summary/本章小结
- References
- Chapter 6 Partitioning/分区
- Partitioning and Replication/分区与复制
- Partitioning of Key-Value Data/键值数据分区
- Partitioning and Secondary Indexes/分片与次级索引
- Rebalancing Partitions/分区再平衡
- Request Routing/请求路由
- Summary/本章小结
- References
- Chapter 7 Transactions/事务
- The Slippery Concept of a Transaction/事务的难以明确的概念
- Weak Isolation Levels/弱隔离级别
- Summary/本章小结
- References
- Chapter 8 The Trouble with Distributed Systems/分布式系统的烦恼
- Faults and Partial Failures/故障和部分失败
- Unreliable Clocks/不可靠的锁
- Knowledge, Truth, and Lies/知识、事实和谎言
- Summary
- References
- Chapter 9 Consistency and Consensus/一致性和共识
- Consistency Guarantees
- Linearizability/线性一致性
- Ordering Guarantees
- Distributed Transactions and Consensus
- Summary
- References
- Chapter 10 Batch Processing/批处理
- Batch Processing with Unix Tools/批处理与Unix工具
- MapReduce and Distributed Filesystems/映射-规约和分布式文件系统
- Beyond MapReduce/映射-规约之外
- SummaryReferences
- Chapter 11 Stream Processing/流处理
- Transmitting Event Streams/传递时间流
- Databases and Streams/数据库与流
- Processing Streams/流处理
- Summary/本章小结
- References
- Chapter 12 The Future of Data Systems/数据系统的未来
- Data Integration/数据集成
- Unbundling Databases/分拆数据库
- Aiming for Correctness/将事情做正确
- Doing the Right Thing/做正确的事
- Summary
- References
书名:设计数据密集型应用(注释版)
译者:北京清数教育科技有限公司 译
国内出版社:清华大学出版社
出版时间:2026年07月
页数:767
书号:978-7-302-69828-9
原版书书名:Designing Data-intensive Applications
原版书出版商:O'Reilly Media
Martin Kleppmann
Martin Kleppmann是英国剑桥大学分布式系统方向的研究员。此前,他曾是LinkedIn和Rapportive等互联网公司的软件工程师,负责大规模数据基础设施建设。在此过程中他遇到过一些困难,因此他希望这本书能够帮助读者避免重蹈覆辙。Martin还是一位活跃的会议演讲者、博主和开源贡献者。他认为,每个人都应该学习深刻的技术理念,对技术的深入理解能帮助我们开发出更好的软件。