資料密集型應用系統設計|可靠、可擴展與可維護系統的關鍵原理, 2/e (Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, 2/e)

Martin Kleppmann , Chris Riccomini 著 李健榮 譯

  • 資料密集型應用系統設計|可靠、可擴展與可維護系統的關鍵原理, 2/e (Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, 2/e)-preview-1
  • 資料密集型應用系統設計|可靠、可擴展與可維護系統的關鍵原理, 2/e (Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, 2/e)-preview-2
  • 資料密集型應用系統設計|可靠、可擴展與可維護系統的關鍵原理, 2/e (Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, 2/e)-preview-3
  • 資料密集型應用系統設計|可靠、可擴展與可維護系統的關鍵原理, 2/e (Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, 2/e)-preview-4
  • 資料密集型應用系統設計|可靠、可擴展與可維護系統的關鍵原理, 2/e (Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, 2/e)-preview-5
  • 資料密集型應用系統設計|可靠、可擴展與可維護系統的關鍵原理, 2/e (Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, 2/e)-preview-6
  • 資料密集型應用系統設計|可靠、可擴展與可維護系統的關鍵原理, 2/e (Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, 2/e)-preview-7
  • 資料密集型應用系統設計|可靠、可擴展與可維護系統的關鍵原理, 2/e (Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, 2/e)-preview-8
  • 資料密集型應用系統設計|可靠、可擴展與可維護系統的關鍵原理, 2/e (Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, 2/e)-preview-9
資料密集型應用系統設計|可靠、可擴展與可維護系統的關鍵原理, 2/e (Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, 2/e)-preview-1

買這商品的人也買了...

相關主題

商品描述

* Amazon 資料探勘、資料處理、資料倉儲 三榜暢銷第一!
* Goodreads 累積破萬讀者評分,4.69星高分好評

面對琳瑯滿目的資料技術,從關聯式資料庫、NoSQL、資料倉儲、資料湖,到串流處理與各式雲端服務,究竟該如何選擇?當資料量不斷成長、系統規模持續擴大,又該如何兼顧效能、可靠性、一致性與可維護性?

被工程師社群譽為「神書」的《資料密集型應用系統設計》(DDIA),是資料庫與分散式系統領域的經典著作,也是後端工程師、資料工程師與系統架構師的重要參考書;從資料庫、分散式系統到雲端原生與AI時代的資料架構,掌握現代工程師不可不知的系統設計原理!

本書不侷限於特定工具或開發框架,而是深入剖析各類資料系統的底層原理、運作機制與架構設計,協助讀者理解不同技術的優勢與限制,在複雜的需求中做出明智的技術決策。

▍ 國際專家高度推薦

「過去十多年來,這本書一直是理解分散式系統的最佳著作,而第二版更是精益求精。」
—— Jay Kreps,Apache Kafka創始人、Confluent共同創辦人

「這本書應該列為軟體工程師的必讀好書。」
—— Kevin Scott,微軟技術長

第二版更獲ACCU專業書評五星肯定,展現本書在軟體工程領域的專業價值。

▍ 台灣業界專家專文推薦

「把系統做出來不難,讓它可靠地活下去,才是工程真正開始的地方。」
—— 張育瑋,友達/AUO 系統開發工程處處長

「『做出一套系統』變得越來越容易,『知道自己做出了什麼』反而變得越來越重要。」
—— 錢逢祥(Fred Chien),寬橋(Brobridge)技術長兼首席架構師


經典全面升級,迎接雲端原生與AI時代!

第二版由Martin Kleppmann與Chris Riccomini共同撰寫,因應近十年的技術演進大幅修訂內容,納入雲端原生資料架構、向量索引、DataFrames、離線優先軟體、持久執行與工作流等重要技術,並重新梳理分散式系統、一致性與共識等核心議題。

這不只是增加新技術的例行改版。根據繁體中文版譯者逐段比對,第二版約四成段落有明顯內容更動,部分章節更經過大幅改寫,不論新讀者或曾讀過第一版的工程師,都值得重新深入研讀。

在AI Coding快速發展的今天,寫出程式變得更加容易,但系統能否可靠運作、資料是否一致、架構能否持續擴展,仍然取決於工程師對底層原理與設計取捨的理解。技術工具不斷推陳出新,真正值得掌握的,是不會輕易過時的系統設計能力。

▍ 本書特色
.深入掌握資料系統核心原理:完整探討資料模型、儲存與索引、複製、分片、交易、一致性、共識,以及批次與串流處理。
.理解技術背後的設計取捨:比較不同資料庫與系統架構的優缺點,學會在效能、可靠性、成本與複雜度之間做出合理選擇。
.掌握現代資料架構的技術演進:涵蓋雲端原生系統、向量索引、資料分析、離線優先軟體與持久執行等重要主題。
.建立長期受用的工程判斷能力: 不只知道系統如何運作,更理解為什麼如此設計,從底層原理培養系統分析、架構規劃與問題解決能力。

▍ 適合閱讀的讀者
後端工程師、資料工程師、雲端工程師、軟體架構師、技術主管,以及希望深入理解大型資料系統運作原理、提升系統設計與架構決策能力的軟體開發者。

作者簡介

Martin Kleppmann 現為劍橋大學副教授,專精分散式系統。在此之前,他不只是一名創業家,也曾在LinkedIn擔任軟體工程師,專注於研發大規模資料系統。

Chris Riccomini 是軟體工程師、新創投資人兼作家。他共同開發了Apache Samza與SlateDB,合著有《The Missing README》一書,並經營Materialized View Capital公司。

目錄大綱

第一章 資料系統架構中的權衡
營運型與分析型系統
雲端與自行架設
分散式與單節點系統
資料系統、法律與社會

第二章 定義非功能性需求
案例研究:社群網路首頁時間軸
描述效能
可靠性與容錯
可擴展性
可維護性

第三章 資料模型與查詢語言
關聯模型與文件模型
Graph-Like 資料模型
事件溯源與 CQRS
資料框、矩陣與陣列

第四章 資料儲存與檢索
OLTP 的儲存與索引
分析型資料儲存
多維與全文索引

第五章 資料編碼與演化
資料編碼格式
Dataflow 的模式

第六章 複製副本
單領導複製
多領導複製
無領導複製

第七章 分片
分片的優缺點
多租戶的分片
鍵值資料的分片
請求路由
分片與次索引

第八章 交易
交易到底是什麼?
弱隔離層級
可序列化
分散式交易

第九章 分散式系統的問題
故障和部分失效
不可靠的網路
不可靠的時鐘
知識、真相與謊言

第十章 一致性與共識
可線性化
ID 產生器與邏輯時鐘
共識

第十一章 批次處理
使用 Unix 工具進行批次處理
分散式系統中的批次處理
批次處理模型
批次處理的使用案例

第十二章 串流處理
發送事件串流
資料庫和串流
串流處理

第十三章 串流系統的哲學
資料整合
分拆資料庫
以正確性為目標

第十四章 堅守正道
預測性分析
隱私和跟蹤

術語表