01 / 导读
导读
引用
Kleppmann, M., & Riccomini, C. (2026). Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems (2nd ed.). O'Reilly Media.
章节概要
第二版由 O'Reilly 于 2026 年初出版,约 670 页。马丁·克莱普曼现为剑桥大学副教授,研究本地优先软件和安全协议,克里斯·里科米尼是共同作者。这一版建立在第一版(俗称“野猪书”)的基础上,作者称其整合了新技术和新趋势。
出版方的介绍点明了问题:数据处于系统设计许多挑战的中心,需要解决的问题包括可扩展性、一致性、可靠性、效率和可维护性。系统种类繁多,从关系数据库、NoSQL 数据存储到数据仓库和数据湖,以云服务、本地服务或嵌入式数据库的形式提供。本书引导读者走过构建现代数据系统所涉及的决策与权衡。下面的概要依照作者和出版方点明的主题领域,不把内容归于具体章节。
需求、权衡与基本属性
本书的起点是数据系统必须具备的属性:可靠性、可扩展性和可维护性,以及一致性和效率。它把设计看作在约束下做选择,并通过找出各种工具的优缺点,帮助读者判断哪些工具适合某个应用。作者把这当作对依靠流行词来工作的替代。
数据系统的内部如何工作
一个核心承诺是看看从业者已经在用的系统的内部:数据库如何存储和检索数据、如何对数据建模,以及现代数据库所依据的核心原理。其方法是通过背后的思想来比较各种各样的工具与做法,而不是教某一款产品的配置。
分布式数据与分布式系统
作者说,读者将理解分布式系统的基础。这个领域涉及保存数据的多个副本、把数据分到多台机器,以及随之而来的故障和一致性问题。出版方补充说,本书展示了主要云服务如何为可扩展性、容错和一致性而设计。
数据处理与应用
本书还把视野从单个数据库扩展到大规模处理数据的系统,出版方列出的数据仓库、数据湖和云服务指向这个范围,其中包括流处理,以及由一个数据集派生出另一个数据集。正如作者在图书网站上所说,重点是在大公司和初创公司的高强度负载下得到验证的思想,把它们同现实而不只是理论联系起来。
核心概念
需求与权衡
- 可靠性、可扩展性与可维护性:书名副标题所承诺的属性,设计选择以此为衡量。
- 一致性与效率:出版方指出系统设计中需要解决的另外两个问题。
数据系统内部
- 设计比较:通过比较各种系统背后的基本思想,而不是描述单一工具的方法。
- 现代数据库的原理:本书着手解释的底层机制。
分布式系统与云服务
- 分布式系统基础:在许多机器上运行数据系统所遇到的问题。
- 云服务设计:主要云服务如何实现可扩展性、容错和一致性。
评析
优点
- 作者所述的方法是通过基本思想比较多种设计,这给读者带来持久的理解,而不是很快过时的针对特定工具的做法。
- 它力求结合理论与实践:学术思想总是同在高强度负载下行之有效的东西联系起来,微软和 Confluent 等公司的从业者的推荐语都点出了这一点。
- 第二版增加了一位共同作者,并按作者的话整合了新技术和新趋势,因此云服务的内容是主线的一部分。
- 范围从关系数据库到数据湖和云服务,适合必须在众多选项中做选择的工程师。
局限
- 本书解释权衡,不教授如何配置或运维某一款产品,需要动手工具指导的读者要另找资源。
- 约 670 页的篇幅和广度使其通读不易,更适合当作反复查阅的参考书。
- 它写给有软件开发经验的人。没有实际编程经验、对数据库、网络和操作系统不熟悉的读者会觉得节奏很快。
- 它是面向从业者的书。需要分布式算法的形式化规约与证明的读者,要到研究生教材中去找。
在课程中的定位
在分布式系统这一组书中,这是关于数据层的从业者指南。维蒂洛的《理解分布式系统》是为开发者写的简明导论,适合在它之前先读。范斯滕与坦嫩鲍姆的《分布式系统》和库鲁里斯等人的《分布式系统:概念与设计》是完整教材,以原理优先的方式涵盖体系结构、通信、命名、协调、复制和容错。卡钦、盖拉维和罗德里格斯的《可靠与安全分布式编程导论》是对抽象与算法的研究生层次论述,规约精确。帕切科的《并行编程导论》讲编写并行程序,是另一个主题。克莱普曼和里科米尼介于导论与形式化教材之间,着眼于真实的存储与处理系统如何做出权衡。
如何使用本书
本书适合软件工程师,以及已会编程并接触过数据库、网络和操作系统、想要推理生产数据系统设计的学生。
实用的读法是按问题来读。先读开头关于需求与权衡的讨论,然后选择工作所需的领域:数据库如何存储和建模数据、数据如何在机器之间复制和划分,或者数据如何处理和派生。想要形式化定义时,把每个领域与范斯滕与坦嫩鲍姆这类原理教材中的相应内容搭配;需要更温和的第一遍时配合维蒂洛。在设计评审中,把本书当作谈论权衡的词汇来源。务必使用第二版:第一版早于作者所说第二版整合的新技术与新趋势。
