跳至主要內容
資料系統時間軸 · 精選里程碑

從集中式 DBMS 到 AI 原生資料系統

以視覺化時間軸呈現 1960–1970 年代至 2026 年間重要的資料系統突破,聚焦關鍵人物、論文、軟體系統、公司,以及每項突破所解決的具體問題。

83個里程碑
5個歷史年代
25個技術類別
1960–2026涵蓋期間
沒有符合目前篩選條件的里程碑。
1960s–1970s9 個里程碑

SABRE 航空訂位系統

Operational DBMS
軟體/營運系統IBM + American Airlines;C. R. Smith 與 R. Blair Smith 是這段起源故事的核心人物
解決的問題:航空訂位仰賴緩慢的人工作業,且分散在各地辦公室與訂位人員之間;機位庫存無法即時、可靠地更新。
解決方式:SABRE 將訂位庫存集中管理,讓即時營運資料處理首次達到商業規模。
重要性:作為 OLTP 式系統的里程碑,證明大型企業可以仰賴集中式、隨時保持最新的資料基礎設施。
DDIA: Ch. 1: Data Systems Trade-offsCh. 2: Nonfunctional Requirements

Integrated Data Store (IDS)

Operational DBMS
軟體/DBMSCharles W. Bachman,General Electric
解決的問題:應用程式團隊必須為每支程式手寫檔案導覽與記錄存取邏輯,造成脆弱且重複的資料處理程式碼。
解決方式:IDS 將資料庫視為受管理的共享資源,開創了直接存取(direct-access)資料庫管理的概念。
重要性:被廣泛認為是第一個 direct-access DBMS;Bachman 後來因資料庫領域的貢獻獲得 1973 年 ACM Turing Award。
DDIA: Ch. 3: Data Models

IBM Information Management System (IMS)

Operational DBMS
軟體/階層式 DBMSIBM、NASA、North American Rockwell
解決的問題:Apollo/Saturn V 的工程需要管理龐大的階層式物料清單與工程變更資料,傳統檔案系統難以妥善處理。
解決方式:IMS 提供階層式 DBMS,支撐任務關鍵的結構化資料與高流量交易工作負載。
重要性:證明 DBMS 能支撐任務關鍵的企業工作負載,至今在大型主機環境中仍具歷史重要性。
DDIA: Ch. 3: Data Models

CODASYL DBTG 網狀資料庫模型

Data model
標準/模型CODASYL Database Task Group;受 Bachman 導覽式資料庫理念影響
解決的問題:早期的資料庫廠商與使用者缺乏共通方式來定義 schema、子 schema 與資料庫操作介面。
解決方式:CODASYL 制定了網狀式(network)資料模型,以及資料庫定義與操作語言的概念。
重要性:將前關聯式時代的資料庫世界觀大幅標準化,深刻影響了導覽式資料庫的實務。
DDIA: Ch. 3: Data Models

關聯式模型(relational model)

Data model
論文/模型Edgar F. Codd,IBM
解決的問題:使用者必須沿著實體記錄連結逐一導覽;應用程式與存取路徑及儲存細節緊密耦合。
解決方式:Codd 提出以關聯(relation)/表格表示資料,並用形式邏輯讓使用者描述想要什麼,而非如何走訪記錄。
重要性:確立了邏輯資料獨立性與宣告式查詢,奠定 SQL 資料庫的基礎。
DDIA: Ch. 3: Data Models

B-tree

Storage engine
論文/儲存結構Rudolf Bayer 與 Edward M. McCreight,Boeing Scientific Research Labs
解決的問題:循序式與雜湊式索引無法在磁碟儲存上有效支援範圍查詢、有序走訪與動態插入。
解決方式:B-tree 將鍵值組織成平衡、高扇出(fan-out)的樹節點,讓點查詢與範圍掃描的磁碟尋道次數降到最低。
重要性:數十年來成為幾乎所有關聯式資料庫、檔案系統與儲存引擎最主要的磁碟索引結構。
DDIA: Ch. 4: Storage & Retrieval

INGRES 研究系統

Query processing
軟體/研究型 DBMSMichael Stonebraker、Eugene Wong,UC Berkeley
解決的問題:關聯式模型雖然優雅,但懷疑者質疑關聯式資料庫是否真的實用且具備足夠效能。
解決方式:INGRES 實作出可供真實使用者與研究工作負載使用的關聯式 DBMS 與查詢語言。
重要性:影響了商用關聯式系統,其技術脈絡最終催生了 PostgreSQL。
DDIA: Ch. 3: Data Models

IBM System R、SEQUEL/SQL 與成本導向最佳化

Query processing
軟體/論文IBM San Jose;Donald Chamberlin、Raymond Boyce、Patricia Selinger 等人
解決的問題:宣告式的關聯式查詢需要被自動轉換成有效率的實體存取計畫。
解決方式:System R 發展出 SQL 式查詢,以及能挑選存取路徑與 join 計畫的成本導向最佳化器(cost-based optimizer)。
重要性:讓關聯式查詢真正實用,並創造出現代 SQL 系統沿用至今的最佳化器架構。
DDIA: Ch. 3: Data ModelsCh. 4: Storage & Retrieval

Oracle Version 2

Commercialization
公司/商用 DBMSRelational Software Inc./Oracle;Larry Ellison、Bob Miner、Ed Oates
解決的問題:關聯式資料庫與 SQL 當時大多仍停留在研究或實驗室階段;企業需要可以直接購買的產品。
解決方式:Oracle V2 將 SQL 關聯式資料庫技術商品化。
重要性:推動關聯式資料庫進入主流企業軟體市場。
DDIA: Ch. 1: Data Systems Trade-offsCh. 3: Data Models
1980s–1990s12 個里程碑

交易處理理論與 ACID 系統

Transactions
論文/系統理論Jim Gray 與合作者
解決的問題:並行使用者與系統當機讓資料庫更新充滿風險:部分寫入、遺失更新、dirty read 與不一致狀態屢見不鮮。
解決方式:交易處理理論將 atomicity、consistency、isolation、durability,以及 commit 協定、鎖定與復原機制形式化。
重要性:為企業 OLTP、銀行、訂位、庫存等任務關鍵系統建立了正確性的理論基礎。
DDIA: Ch. 8: Transactions

IBM Db2

Commercialization
軟體/商用 DBMSIBM
解決的問題:IBM 的大型主機客戶需要生產等級、支援 SQL 的關聯式資料庫來承載企業工作負載。
解決方式:Db2 將關聯式資料管理與 SQL 帶進 IBM 任務關鍵的企業平台。
重要性:加速了關聯式資料庫在大型組織中的普及。
DDIA: Ch. 3: Data ModelsCh. 8: Transactions

Teradata DBC/1012

Data warehouse / OLAP
公司/MPP 資料庫電腦Teradata
解決的問題:單一機器無法以合理成本掃描並分析非常大量的商業資料。
解決方式:Teradata 將資料庫軟體與平行硬體結合成大規模平行處理(MPP)的資料庫電腦。
重要性:協助確立 MPP 資料倉儲成為大規模分析工作負載的架構。
DDIA: Ch. 7: Sharding

ANSI SQL 標準

Query processing
標準ANSI X3H2 委員會與 SQL 廠商
解決的問題:SQL 方言分裂,使用者與工具難以在不同關聯式資料庫廠商之間移轉。
解決方式:ANSI SQL 標準為關聯式查詢定義了共通的語言基準。
重要性:改善了關聯式資料庫的可攜性、教育、採購與生態系發展。
DDIA: Ch. 3: Data Models

POSTGRES

Extensible DBMS
軟體/研究型 DBMSMichael Stonebraker,UC Berkeley
解決的問題:第一代關聯式系統的純量型別過於僵硬,對複雜的應用專屬物件與運算子支援有限。
解決方式:POSTGRES 引入物件關聯式的可擴展性、使用者自訂型別/運算子與規則系統。
重要性:成為 PostgreSQL 的思想源頭,深刻影響可擴展資料庫架構。
DDIA: Ch. 3: Data ModelsCh. 4: Storage & Retrieval

Gamma 與 shared-nothing 平行資料庫研究

Parallel DBMS
論文/研究系統David DeWitt 與 University of Wisconsin 資料庫研究群
解決的問題:關聯式查詢執行需要突破單一伺服器的限制,同時避免集中式瓶頸。
解決方式:Gamma 展示了資料分割與平行關聯式運算子如何在 shared-nothing 架構上運行。
重要性:影響了平行資料庫、MPP 資料倉儲,以及後來的分散式分析引擎。
DDIA: Ch. 7: Sharding

ARIES 復原演算法

Transactions
論文/復原機制設計C. Mohan 與 IBM 合作者
解決的問題:資料庫需要在當機後快速且正確地復原,同時支援細粒度鎖定與高並行度。
解決方式:ARIES 採用 write-ahead logging、redo 階段重演歷史(repeating history)與邏輯 undo,實現穩健的當機復原。
重要性:成為商用資料庫系統中最具影響力的復原演算法之一。
DDIA: Ch. 8: Transactions

資料倉儲架構與維度建模(dimensional modeling)

Data warehouse / OLAP
架構/書籍Bill Inmon;Ralph Kimball
解決的問題:營運資料庫並不適合進行長期、歷史性、跨部門的商業分析。
解決方式:資料倉儲將分析資料與 OLTP 分離;維度建模讓指標、事實(fact)與維度(dimension)更容易查詢。
重要性:建立了往後數十年的標準企業 BI 架構。
DDIA: Ch. 1: Data Systems Trade-offsCh. 4: Storage & Retrieval

MySQL 與 PostgreSQL 開源關聯式系統

Commercialization
軟體/開放原始碼MySQL AB 創辦人 Michael “Monty” Widenius、David Axmark、Allan Larsson;PostgreSQL 社群
解決的問題:開發者與網路公司需要負擔得起、容易取得的 SQL 資料庫,而不必支付昂貴的企業授權費。
解決方式:開源關聯式系統讓網站、新創公司與後來的雲端服務都能廣泛使用生產級 SQL 資料庫。
重要性:成為 Web 時代與現代開源資料庫生態系的基石。
DDIA: Ch. 3: Data ModelsCh. 4: Storage & Retrieval

Data Cube 與 OLAP 關聯式聚合

Data warehouse / OLAP
論文/查詢運算子Jim Gray、Surajit Chaudhuri、Adam Bosworth、Andrew Layman、Hamid Pirahesh 等人
解決的問題:SQL 的 GROUP BY 難以支援多維度的 roll-up、drill-down、小計與交叉分析。
解決方式:CUBE 運算子將聚合一般化,支援多維度的 OLAP 查詢。
重要性:影響了 SQL 擴充、OLAP 引擎與商業智慧的查詢語意。
DDIA: Ch. 4: Storage & Retrieval

Log-Structured Merge Tree (LSM-tree)

Storage engine
論文/儲存結構Patrick O’Neil、Edward Cheng、Dieter Gawlick、Elizabeth O’Neil
解決的問題:傳統磁碟索引在高寫入工作負載下效率不佳,因為隨機的原地更新(in-place update)成本高昂。
解決方式:LSM-tree 先在記憶體中批次累積寫入,再隨時間合併已排序的區段,以可控的讀取放大換取寫入效率。
重要性:成為 Bigtable、Cassandra、HBase、LevelDB、RocksDB 等眾多鍵值儲存系統的基礎。
DDIA: Ch. 4: Storage & Retrieval

Paxos 共識演算法

Distributed systems
論文/共識演算法Leslie Lamport(原始論文寫於 1989、發表於 1998;「Paxos Made Simple」發表於 2001)
解決的問題:具備複本的分散式系統需要在機器故障與訊息延遲下,仍能對狀態達成一致。
解決方式:Paxos 為 replicated log 與狀態機形式化了容錯的分散式共識。
重要性:成為 metadata 服務、分散式資料庫與協調系統的基礎。
DDIA: Ch. 10: Consistency & Consensus
2000s18 個里程碑

Apache Lucene 與 Solr

Storage engine
軟體/搜尋函式庫Doug Cutting;後由 Apache Lucene 與 Solr 社群維護
解決的問題:關聯式與鍵值儲存不擅長全文搜尋:相關性排名、斷詞(tokenization)、詞幹處理(stemming),以及在大量文件中快速查找關鍵字。
解決方式:Lucene 提供高效能的倒排索引(inverted index)函式庫與相關性計分;Solr 將其包裝成可分散、易維運的搜尋伺服器。
重要性:成為開源全文搜尋的基石,後來支撐了 Solr、Elasticsearch 與多數企業搜尋。
DDIA: Ch. 4: Storage & Retrieval

SQLite

Operational DBMS
軟體/嵌入式 DBMSD. Richard Hipp
解決的問題:應用程式需要一個自足、無伺服器(serverless)、零設定、零管理的 SQL 資料庫。
解決方式:SQLite 提供以單一跨平台檔案儲存的嵌入式 SQL 資料庫引擎,不需要獨立的伺服器程序。
重要性:成為全世界部署最廣的資料庫引擎,內嵌於數十億台裝置、瀏覽器與應用程式中。
DDIA: Ch. 1: Data Systems Trade-offsCh. 4: Storage & Retrieval

CAP 定理/Brewer 猜想的形式化

Distributed systems
理論/論文Eric Brewer;Seth Gilbert 與 Nancy Lynch
解決的問題:分散式系統的設計者需要一個清晰的框架,來理解網路分區(partition)帶來的取捨。
解決方式:CAP 闡明在網路分區發生時,系統必須在一致性與可用性之間做出取捨。
重要性:深刻影響了 2000 與 2010 年代 NoSQL 與分散式資料庫的設計論辯。
DDIA: Ch. 9: Distributed SystemsCh. 10: Consistency & Consensus

Memcached

Web-scale systems
軟體/分散式快取Brad Fitzpatrick,Danga Interactive/LiveJournal
解決的問題:動態網站為了同樣的讀取密集資料反覆存取資料庫,壓垮了後端儲存。
解決方式:Memcached 在資料庫與應用程式前面提供簡單的分散式記憶體快取。
重要性:成為降低資料庫負載與延遲的標準 Web 規模架構元件。
DDIA: Ch. 2: Nonfunctional RequirementsCh. 6: Replication

Google File System (GFS)

Distributed storage
論文/分散式儲存Sanjay Ghemawat、Howard Gobioff、Shun-Tak Leung,Google
解決的問題:Google 需要在不可靠的商用伺服器上,為巨量資料集提供容錯的檔案儲存。
解決方式:GFS 針對大檔案、循序存取、複寫與故障復原最佳化分散式儲存。
重要性:影響了 HDFS 與大規模分散式儲存設計。
DDIA: Ch. 6: ReplicationCh. 7: Sharding

MapReduce

Big data processing
論文/批次運算系統Jeffrey Dean、Sanjay Ghemawat,Google
解決的問題:在巨量資料集上撰寫可靠的分散式批次工作,需要手動處理排程、故障與資料分配。
解決方式:MapReduce 讓開發者只需撰寫 map 與 reduce 函式,由執行環境負責分配、重試與彙總。
重要性:定義了第一個主流的大數據程式設計模型,並啟發了 Hadoop MapReduce。
DDIA: Ch. 11: Batch Processing

C-Store 與 Vertica 一系的欄式儲存

Data warehouse / OLAP
論文/商業化脈絡Michael Stonebraker、Daniel Abadi、Samuel Madden 等人;後來的 Vertica
解決的問題:分析查詢往往只掃描少數欄位,row store 卻為此浪費大量 I/O。
解決方式:欄式儲存改善了壓縮、欄位裁剪(column pruning)、向量化掃描與分析效能。
重要性:影響了現代雲端資料倉儲與分析引擎。
DDIA: Ch. 4: Storage & Retrieval

Amazon S3

Cloud data systems
公司/雲端儲存Amazon Web Services
解決的問題:團隊需要耐久、可擴展、透過 API 存取的儲存,而不想購買或維運儲存硬體。
解決方式:S3 提供獨立於本機檔案系統與資料庫之外的低成本物件儲存。
重要性:成為 data lake、雲端原生資料倉儲與儲存/運算分離系統的基礎。
DDIA: Ch. 1: Data Systems Trade-offsCh. 11: Batch Processing

Bigtable

Distributed storage
論文/分散式儲存系統Fay Chang、Jeffrey Dean、Sanjay Ghemawat、Wilson Hsieh、Deborah Wallach、Mike Burrows、Tushar Chandra、Andrew Fikes、Robert Gruber,Google
解決的問題:Google 需要在數千台機器上為 PB 級資料提供結構化儲存。
解決方式:Bigtable 實作了稀疏、分散、持久化、有序的多維度 map。
重要性:影響了 HBase、Cassandra 與寬欄(wide-column)資料庫設計。
DDIA: Ch. 4: Storage & RetrievalCh. 7: Sharding

Hadoop

Big data processing
軟體/開源生態系Doug Cutting、Mike Cafarella、Yahoo、Apache 社群
解決的問題:Google 式的分散式儲存與批次處理,大多數組織無從取得。
解決方式:Hadoop 在商用叢集上提供開源的 HDFS 與 MapReduce。
重要性:讓產業界與學術界都能使用大數據處理。
DDIA: Ch. 11: Batch Processing

Amazon Dynamo

Distributed systems
論文/鍵值儲存Amazon;Werner Vogels 與團隊
解決的問題:Amazon 需要購物車等鍵值服務在伺服器故障與網路分區期間依然永遠可用。
解決方式:Dynamo 採用 consistent hashing、quorum 讀寫、版本化,以及由應用程式協助的衝突解決。
重要性:為高可用 NoSQL 鍵值儲存立下了範本。
DDIA: Ch. 6: ReplicationCh. 7: Sharding

Cassandra 與寬欄(wide-column)NoSQL

Distributed storage
軟體/分散式資料庫Facebook;Avinash Lakshman、Prashant Malik;Apache 社群
解決的問題:大型 Web 應用需要高寫入吞吐量、高可用性,且不能有單點故障。
解決方式:Cassandra 結合 Dynamo 式的分散架構與 Bigtable 式的資料建模。
重要性:成為寫入密集、永遠在線工作負載的主要開源分散式資料庫。
DDIA: Ch. 4: Storage & RetrievalCh. 6: ReplicationCh. 7: Sharding

Protocol Buffers、Thrift 與 Avro

Data formats
軟體/序列化框架Google(Protocol Buffers);Facebook(Thrift);Doug Cutting 與 Apache 社群(Avro)
解決的問題:透過 RPC 交換資料或儲存 schema 的系統,需要精簡、有版本、跨語言且向前向後相容的序列化。
解決方式:Protocol Buffers、Thrift 與 Avro 提供 schema 驅動的二進位編碼,並為資料結構演進定義明確的相容性規則。
重要性:確立了 schema 演進與跨服務資料交換的現代作法。
DDIA: Ch. 5: Encoding & Evolution

RDF、SPARQL 與 triple-store

Data model
標準/圖資料模型W3C;Tim Berners-Lee 與 Semantic Web 社群
解決的問題:知識圖譜、metadata 與 linked data 的關係不規則、稀疏且高度互連,僵硬的關聯式 schema 難以妥善建模。
解決方式:RDF 以主詞–述詞–受詞三元組(triple)表示事實,SPARQL 提供圖查詢語言,triple-store(Jena、Virtuoso、AllegroGraph)讓這個模型能被大規模查詢。
重要性:確立了三元組/圖資料模型與標準查詢語言,支撐 Semantic Web、linked open data 與現代知識圖譜。
DDIA: Ch. 3: Data Models

Neo4j 與屬性圖(property graph)模型

Data model
軟體/圖資料庫Neo4j Inc.(前身 Neo Technology);Emil Eifrem、Johan Svensson、Peter Neubauer
解決的問題:社交網路、詐欺偵測、知識圖譜等高度互連的資料,用關聯式 join 或文件巢狀結構都難以妥善處理。
解決方式:Neo4j 實作原生屬性圖資料庫,以 index-free adjacency 高效走訪關係。
重要性:確立圖資料庫成為公認的資料模型類別,並影響 Cypher、Gremlin 與圖查詢標準化。
DDIA: Ch. 3: Data Models

Apache ZooKeeper

Distributed systems
軟體/協調服務Yahoo Research;Patrick Hunt、Mahadev Konar、Flavio Junqueira、Benjamin Reed
解決的問題:分散式應用需要可靠的協調服務來處理組態、命名、同步與群組成員管理。
解決方式:ZooKeeper 提供集中式協調服務,具備有序、持久化的 znode 與 watch 通知。
重要性:成為 Hadoop、Kafka、HBase 等眾多需要協調的分散式系統的關鍵基礎設施。
DDIA: Ch. 10: Consistency & Consensus

Hive

Big data processing
軟體/SQL-on-HadoopFacebook 資料基礎設施團隊;Apache 社群
解決的問題:對想以類 SQL 方式存取 Hadoop 資料的分析師與 BI 使用者而言,MapReduce 太過底層。
解決方式:Hive 在 Hadoop 資料集之上引入類 SQL 的資料倉儲層。
重要性:推動 SQL 成為大數據系統的共通介面。
DDIA: Ch. 11: Batch Processing

MongoDB 與 Redis

Web-scale systems
軟體/NoSQL 與記憶體內系統10gen/MongoDB;Salvatore Sanfilippo/Redis
解決的問題:Web 應用需要彈性的文件式資料,以及超低延遲的快取與資料結構。
解決方式:MongoDB 主打文件儲存與彈性 schema;Redis 提供記憶體內的資料結構伺服器。
重要性:讓文件資料庫與記憶體內資料系統在應用基礎設施中普及。
DDIA: Ch. 3: Data ModelsCh. 4: Storage & Retrieval
2010s28 個里程碑

Dremel 與 BigQuery 的技術源流

Cloud data systems
論文/雲端分析Google;Sergey Melnik 與團隊
解決的問題:Hadoop 式批次分析對巨量資料集的互動式即席(ad hoc)查詢來說太慢。
解決方式:Dremel 以欄式配置與多層執行樹,對巢狀資料進行互動式分析。
重要性:成為 BigQuery 與互動式雲端分析的技術基礎。
DDIA: Ch. 4: Storage & RetrievalCh. 11: Batch Processing

Apache Spark

Big data processing
軟體/叢集運算Matei Zaharia,UC Berkeley AMPLab;後由 Databricks 與 Apache 社群發展
解決的問題:MapReduce 對迭代式機器學習、互動式探索與多階段管線的效率不佳。
解決方式:Spark 引入 resilient distributed datasets(RDD)與以記憶體為中心的叢集運算。
重要性:成為 ETL、ML、串流與 SQL 工作負載的主流通用大數據引擎。
DDIA: Ch. 11: Batch Processing

Elasticsearch

Query processing
軟體/分散式搜尋引擎Shay Banon;Elastic
解決的問題:全文搜尋與日誌分析需要可擴展、近即時索引的分散式搜尋引擎。
解決方式:Elasticsearch 提供分散式全文搜尋,具備倒排索引、近即時索引與 REST API。
重要性:成為主流的搜尋與可觀測性平台,支撐應用程式搜尋、日誌分析與 ELK stack。
DDIA: Ch. 4: Storage & RetrievalCh. 7: Sharding

Apache Kafka

Streaming
軟體/分散式 logLinkedIn;Jay Kreps、Neha Narkhede、Jun Rao
解決的問題:企業需要可靠的高流量事件擷取,以及讓 producer 與 consumer 解耦的方式。
解決方式:Kafka 提供耐久的分散式 commit log,支援 topic、partition、重播(replay)與 consumer group。
重要性:成為串流管線、事件驅動系統與即時資料平台的核心基礎設施。
DDIA: Ch. 12: Stream Processing

Vitess 水平擴展 MySQL 分片

Distributed SQL
軟體/分片中介層YouTube/Google;Sugu Sougoumarane 與 Mike Solomon;後加入 CNCF
解決的問題:MySQL 本身無法水平擴展;當資料超出單一伺服器,大型部署會碰到連線數、儲存與寫入吞吐量的極限。
解決方式:Vitess 在多個 MySQL 實例之前加入分片與查詢路由層,自動化 resharding、連線池與拓撲管理,同時保留 MySQL 語意。
重要性:讓 MySQL 得以支撐龐大的工作負載(YouTube、Slack、GitHub、PlanetScale),並成為透明水平分片的參考設計。
DDIA: Ch. 7: Sharding

Spanner

Distributed SQL
論文/全球分散式資料庫Google;James C. Corbett 與團隊
解決的問題:全球性服務需要跨區域複寫資料,同時仍支援強一致、外部一致(externally consistent)的交易。
解決方式:Spanner 結合複寫、分散式交易、TrueTime 與類 SQL 語意。
重要性:重新定義了全球規模與交易一致性之間的關係。
DDIA: Ch. 6: ReplicationCh. 8: TransactionsCh. 10: Consistency & Consensus

Calvin 決定性交易

Distributed SQL
論文/交易架構Alexander Thomson、Daniel Abadi,Yale
解決的問題:分散式交易的協調成本很高,跨分區發生競爭時尤其嚴重。
解決方式:Calvin 以決定性(deterministic)交易排序來降低執行期協調的複雜度。
重要性:影響了分散式 SQL 與決定性交易處理架構。
DDIA: Ch. 8: TransactionsCh. 10: Consistency & Consensus

Amazon DynamoDB 託管 NoSQL

Cloud data systems
公司/託管 NoSQL 服務Amazon Web Services
解決的問題:2007 年的 Dynamo 設計威力強大但維運複雜;團隊想要它的彈性擴展與可用性,卻不想自己營運和調校叢集。
解決方式:DynamoDB 提供全託管、serverless 的鍵值與文件儲存,具備可預測的個位數毫秒延遲、自動分割與隨需擴展。
重要性:讓 Dynamo 式的彈性 NoSQL 成為隨開即用的雲端基本元件,以及高規模營運工作負載的預設選項。
DDIA: Ch. 6: ReplicationCh. 7: Sharding

Amazon Redshift 與託管雲端資料倉儲

Cloud data systems
公司/雲端資料倉儲Amazon Web Services
解決的問題:地端 MPP 資料倉儲昂貴,採購、擴充與維運都很緩慢。
解決方式:Redshift 提供託管的雲端資料倉儲與可擴展的分析容量。
重要性:推動雲端託管分析成為許多組織的預設選擇。
DDIA: Ch. 4: Storage & RetrievalCh. 7: Sharding

Presto / Trino 式分散式 SQL

Query processing
軟體/查詢引擎Facebook/Meta;後由 Presto Foundation 與 Trino 社群發展
解決的問題:企業資料散落在許多系統中;先把所有資料搬進單一倉儲再查詢,既昂貴又緩慢。
解決方式:Presto 讓互動式 SQL 能直接查詢多種資料來源與儲存系統。
重要性:讓聯邦式/分散式 SQL 引擎在異質資料平台上普及。
DDIA: Ch. 7: ShardingCh. 11: Batch Processing

RocksDB

Storage engine
軟體/儲存引擎Facebook / Meta
解決的問題:分散式應用需要可嵌入的高效能鍵值引擎,並針對 SSD 與大型寫入密集工作負載最佳化。
解決方式:RocksDB 將 LSM-tree 儲存工業化,提供生產級調校、compaction 控制與面向 SSD 的效能。
重要性:成為眾多資料庫、串流處理器與分散式系統的儲存引擎基底。
DDIA: Ch. 4: Storage & Retrieval

時序資料庫:Prometheus、InfluxDB、TimescaleDB

Time-series
軟體/專用資料庫Prometheus:SoundCloud/CNCF;InfluxDB:InfluxData/Paul Dix;TimescaleDB:Timescale Inc./Ajay Kulkarni、Mike Freedman
解決的問題:通用資料庫處理高頻率帶時間戳的指標、IoT 遙測與監控資料時效率不佳。
解決方式:時序資料庫針對 append 密集的寫入、時間範圍查詢、降採樣(downsampling)、保留政策與指標專用壓縮進行最佳化。
重要性:為可觀測性、IoT 與大規模營運監控創造出專門的資料庫類別。
DDIA: Ch. 4: Storage & RetrievalCh. 2: Nonfunctional Requirements

Raft 共識演算法

Distributed systems
論文/共識演算法Diego Ongaro、John Ousterhout,Stanford
解決的問題:Paxos 式共識威力強大,但工程師難以理解並正確實作。
解決方式:Raft 以可理解性優先的設計,將共識拆解為 leader 選舉、log 複寫與安全性三個部分。
重要性:被實務上的分散式資料庫與協調系統廣泛採用。
DDIA: Ch. 10: Consistency & Consensus

etcd 分散式鍵值儲存

Distributed systems
軟體/協調儲存CoreOS;後加入 CNCF
解決的問題:雲端原生系統需要可靠、強一致的儲存來處理組態、服務發現與 leader 選舉,並能承受節點故障。
解決方式:etcd 實作 Raft 共識演算法,提供具複本、可線性化(linearizable)的鍵值儲存,支援 watch 與 lease。
重要性:成為 Kubernetes 的骨幹(儲存所有叢集狀態),以及雲端原生基礎設施的預設協調元件。
DDIA: Ch. 9: Distributed SystemsCh. 10: Consistency & Consensus

Airflow 與資料編排即程式碼

Data engineering
軟體/工作流程編排Airbnb;Maxime Beauchemin;Apache 社群
解決的問題:資料團隊需要撰寫、排程、監控、重試並修復橫跨多個系統的複雜管線。
解決方式:Airflow 以 Python 定義的 DAG 表示工作流程,並提供排程與維運可視性。
重要性:讓「編排即程式碼」在現代資料工程中普及。
DDIA: Ch. 11: Batch Processing

CockroachDB

Distributed SQL
軟體/分散式 SQL 資料庫Spencer Kimball、Peter Mattis、Ben Darnell;Cockroach Labs
解決的問題:想要全球分散、可序列化 SQL 卻不依賴專有基礎設施的組織,需要 Google Spanner 的開源替代方案。
解決方式:CockroachDB 實作受 Spanner 啟發的分散式 SQL,在商用硬體上提供可序列化交易、自動分片與跨地域複寫。
重要性:讓 Google 以外的世界也能使用全球分散、強一致的 SQL 資料庫。
DDIA: Ch. 6: ReplicationCh. 8: TransactionsCh. 10: Consistency & Consensus

Amazon Aurora

Cloud data systems
公司/雲端原生關聯式資料庫Amazon Web Services
解決的問題:傳統關聯式資料庫將運算與儲存耦合,使雲端上的複寫、故障轉移與擴展緩慢、昂貴且寫入放大嚴重。
解決方式:Aurora 將 redo log 處理下推到分散式、跨多可用區的儲存層——「log 即資料庫」——網路上只傳輸 log 記錄,儲存層可自我修復。
重要性:以儲存與運算分離重新定義了雲端原生 OLTP,啟發了 Neon、AlloyDB 與一整個世代的分離式儲存資料庫。
DDIA: Ch. 1: Data Systems Trade-offsCh. 6: Replication

TiDB 與 YugabyteDB

Distributed SQL
軟體/分散式 HTAP SQLPingCAP(TiDB);Yugabyte(YugabyteDB)
解決的問題:團隊想要水平擴展與高可用,又不想放棄 MySQL/PostgreSQL 相容性,並且越來越希望在同一份資料上同時執行交易與分析。
解決方式:TiDB 與 YugabyteDB 打造受 Spanner 啟發、以 Raft 複寫的分散式 SQL 引擎並保持協定相容;TiDB 另增欄式引擎(TiFlash)以支援 HTAP。
重要性:讓開源、可直接替換的分散式 SQL——以及實用的 HTAP——進入主流。
DDIA: Ch. 7: ShardingCh. 8: Transactions

Flink、Druid、Pinot 與 ClickHouse

Streaming
軟體/串流與即時 OLAPApache Flink 社群;Metamarkets/Druid;LinkedIn/Pinot;Yandex/ClickHouse
解決的問題:隔夜批次系統無法支援即時儀表板、事件時間(event-time)串流運算,或面向使用者的分析延遲要求。
解決方式:Flink 解決了有狀態串流處理;Druid、Pinot 與 ClickHouse 則主攻對新鮮事件資料的低延遲分析查詢。
重要性:讓即時分析與串流資料平台成為主流。
DDIA: Ch. 4: Storage & RetrievalCh. 12: Stream Processing

Snowflake 雲端資料倉儲

Cloud data systems
公司/雲端資料倉儲Snowflake;Benoit Dageville、Thierry Cruanes、Marcin Żukowski 與團隊
解決的問題:傳統資料倉儲把儲存、運算、擴展與工作負載管理綁得太緊。
解決方式:Snowflake 分離儲存與運算,提供彈性擴展與多叢集的工作負載隔離。
重要性:定義了雲端原生資料倉儲架構,重塑企業分析的採購與設計。
DDIA: Ch. 1: Data Systems Trade-offsCh. 4: Storage & Retrieval

Parquet 與 Arrow

Data formats
檔案格式/記憶體格式Apache 社群;橫跨 Hadoop、Spark、Pandas 與 R 生態系的貢獻者
解決的問題:分析系統需要高效率的欄式檔案,以及快速的跨語言記憶體內資料交換。
解決方式:Parquet 提供欄式磁碟儲存;Arrow 定義與語言無關的欄式記憶體格式。
重要性:成為現代分析資料湖、引擎與 dataframe 互通性的基礎建設。
DDIA: Ch. 4: Storage & RetrievalCh. 5: Encoding & Evolution

Apache Beam

Big data processing
軟體/統一處理模型Google(源自 Dataflow 模型);Tyler Akidau、Robert Bradshaw、Craig Chambers;Apache 社群
解決的問題:開發者必須在批次與串流處理框架之間二選一,為兩者撰寫不同的程式碼。
解決方式:Beam 提供批次與串流統一的程式設計模型,並支援可插拔的 runner(Flink、Spark、Dataflow)。
重要性:確立了可攜、與 runner 無關的資料處理管線 API。
DDIA: Ch. 11: Batch ProcessingCh. 12: Stream Processing

Apache Pulsar

Streaming
軟體/訊息與串流Yahoo;後捐給 Apache Software Foundation
解決的問題:大規模訊息與串流讓單層式設計吃緊:運算與儲存耦合使彈性擴展、多租戶與跨地域複寫都變得困難。
解決方式:Pulsar 將服務層(broker)與儲存層(Apache BookKeeper)分離,加上原生多租戶、分層儲存至物件儲存與內建跨地域複寫。
重要性:提供了一個具備儲存/運算彈性分離與強多租戶隔離的 Kafka 替代方案,服務大型訊息平台。
DDIA: Ch. 12: Stream Processing

dbt (data build tool)

Data engineering
軟體/分析工程Tristan Handy;dbt Labs(前身 Fishtown Analytics)
解決的問題:撰寫 SQL 轉換的分析師缺乏版本控制、測試、文件與模組化等軟體工程實務。
解決方式:dbt 將軟體工程工作流程(版本控制、測試、文件、DAG 相依關係)帶入以 SQL 為基礎的資料轉換。
重要性:催生了「analytics engineering」這個角色,成為 modern data stack 的核心工具。
DDIA: Ch. 11: Batch Processing

Debezium 與 Change Data Capture (CDC)

Change data capture
軟體/CDC 平台Red Hat;Randall Hauch 與社群貢獻者
解決的問題:要把資料庫變更複寫到下游系統,過去得仰賴脆弱的輪詢、雙寫(dual write)或廠商專屬的 log 解析。
解決方式:Debezium 從資料庫交易 log 進行 log-based change data capture,將變更送入 Kafka topic 並提供 exactly-once 傳遞語意。
重要性:讓 OLTP 資料庫與 data lake、搜尋索引、快取之間的即時資料整合變得可靠且主流。
DDIA: Ch. 6: ReplicationCh. 12: Stream Processing

Kubernetes StatefulSets 與 Operators

Cloud data systems
平台/維運模式Kubernetes 社群、CoreOS/Red Hat、CNCF 生態系
解決的問題:容器平台起初更適合無狀態應用,而非需要穩定身分與持久儲存的資料庫。
解決方式:StatefulSets 與 Operators 為有狀態服務加入了基本元件與自動化模式。
重要性:讓資料庫的雲端原生維運變得更可行,儘管維運上仍然複雜。
DDIA: Ch. 9: Distributed Systems

GDPR 與資料隱私法規

Data governance
法規/法律歐盟;歐洲議會與歐盟理事會
解決的問題:資料系統蒐集並保存個人資料,對儲存、處理、刪除與跨境傳輸幾乎沒有限制。
解決方式:GDPR 強制要求被遺忘權(right to erasure)、資料可攜性、同意管理、資料外洩通知與目的限制,並附帶高額罰則。
重要性:迫使資料系統加入刪除能力、稽核日誌、資料血緣(lineage)與 privacy-by-design——重塑了資料庫架構與資料管線設計。
DDIA: Ch. 14: Doing the Right Thing

FAISS

AI / Vector retrieval
軟體/向量搜尋Facebook AI Research / Meta AI
解決的問題:機器學習應用需要在數十億個高維 embedding 上進行快速相似度搜尋。
解決方式:FAISS 提供高效率的近似最近鄰(approximate nearest-neighbor)向量索引與搜尋。
重要性:在 LLM/RAG 熱潮之前,就讓 embedding 檢索變得實用。
DDIA: Ch. 4: Storage & Retrieval
2020–202616 個里程碑

Feature store(Michelangelo、Feast、Tecton)

Data engineering
軟體類別/ML 資料基礎設施Uber(Michelangelo);Feast 社群;Tecton
解決的問題:ML 團隊在訓練與線上服務時以不一致的方式計算特徵,造成 training/serving skew、重複管線,且特徵無法跨模型重用。
解決方式:Feature store 集中管理特徵定義,配對離線(批次)與線上(低延遲)儲存,提供 point-in-time 正確的 join 與特徵共享。
重要性:標準化了生產環境 ML 的資料層,銜接資料工程與模型服務。
DDIA: Ch. 11: Batch ProcessingCh. 12: Stream Processing

Apache Hudi、Apache Iceberg、Delta Lake 與 lakehouse 架構

Lakehouse
軟體/表格式(table format)Uber/Hudi 脈絡、Netflix/Iceberg 脈絡、Databricks/Delta Lake、Apache 社群
解決的問題:data lake 常常只是物件儲存上的一堆檔案:交易能力薄弱、schema 演進困難、並行控制艱難、metadata 脆弱。
解決方式:Lakehouse 表格式在物件儲存之上加入類 ACID 語意、schema 演進、time travel、索引/metadata 與資料表抽象。
重要性:融合了資料倉儲級的可靠性與 data lake 的開放儲存經濟性。
DDIA: Ch. 4: Storage & RetrievalCh. 12: Stream Processing

DuckDB

Query processing
軟體/嵌入式分析 DBMSMark Raasveldt、Hannes Mühleisen,CWI
解決的問題:開發者有 SQLite 可做嵌入式 OLTP 用途,卻沒有同樣簡單、針對分析最佳化的 in-process 資料庫。
解決方式:DuckDB 提供嵌入式、向量化的分析 SQL,可直接查詢本機資料、檔案與 data frame。
重要性:讓本機分析處理與 notebook/dataframe SQL 變得容易許多。
DDIA: Ch. 4: Storage & RetrievalCh. 11: Batch Processing

資料可觀測性(data observability)

Data engineering
實務/軟體類別Monte Carlo 與更廣泛的 modern data stack 廠商
解決的問題:複雜的資料管線產生無聲的故障:過期的資料表、schema 損壞、異常數值與失效的儀表板。
解決方式:資料可觀測性加入對新鮮度、資料量、schema、血緣、品質與事件應變的監控。
重要性:讓資料維運更貼近 SRE 式的可靠性實務。
DDIA: Ch. 2: Nonfunctional Requirements

Data mesh

Data architecture
架構/組織模型Zhamak Dehghani;ThoughtWorks
解決的問題:集中式資料團隊成為瓶頸;單體式資料平台無法在組織層面跨領域擴展。
解決方式:Data mesh 提出領域導向的所有權、data as a product、自助式資料基礎設施與聯邦式運算治理。
重要性:讓資料架構思維從集中式管線轉向分散、由領域擁有的資料產品。
DDIA: Ch. 1: Data Systems Trade-offsCh. 13: Streaming Philosophy

資料目錄(data catalog)與 metadata 管理

Data catalog
軟體類別/metadata 控制平面Apache Atlas、LinkedIn DataHub、Lyft Amundsen;Databricks Unity Catalog、Apache Polaris
解決的問題:隨著資料散落於倉儲、資料湖與管線之間,團隊無法一致地探索資料集、追蹤血緣、指定負責人或執行治理。
解決方式:資料目錄從 Hive Metastore 演進為探索與血緣平台(Atlas、DataHub、Amundsen),再進化為治理與互通性控制平面(Unity Catalog、Apache Polaris、Iceberg REST catalog)。
重要性:讓 metadata 從邊緣的附屬表躍升為 lakehouse 的控制平面——仲裁探索、血緣、存取,以及開放表格式上的多引擎互通。
DDIA: Ch. 1: Data Systems Trade-offsCh. 3: Data Models

Retrieval-Augmented Generation (RAG)

AI / Vector retrieval
論文/AI 資料架構Patrick Lewis, Ethan Perez, Aleksandra Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich Küttler, Mike Lewis, Wen-tau Yih, Tim Rocktäschel, Sebastian Riedel, Douwe Kiela
解決的問題:LLM 的參數化記憶難以更新、檢視、引用,也難以錨定在外部文件上。
解決方式:RAG 將生成式模型與非參數化檢索結合,通常建立在密集向量索引之上。
重要性:把資料系統直接連上 AI 答案生成、企業搜尋與 agent 記憶。
DDIA: Ch. 4: Storage & Retrieval

Milvus 與專用向量資料庫

AI / Vector retrieval
軟體/向量資料庫Zilliz/Milvus;LF AI & Data 生態系
解決的問題:embedding 搜尋需要能對大規模高維向量進行索引、查詢與服務的營運級系統。
解決方式:Milvus 提供專為大規模相似度搜尋打造的向量資料庫。
重要性:協助定義了 AI 應用的向量資料庫類別。
DDIA: Ch. 4: Storage & Retrieval

Pinecone 託管向量資料庫

AI / Vector retrieval
公司/託管向量資料庫Pinecone
解決的問題:打造語意搜尋與 ML 檢索的團隊不想自行維運向量基礎設施。
解決方式:Pinecone 提供託管的向量索引、相似度搜尋與擴展能力。
重要性:讓向量資料庫基礎設施以外部託管服務的形式普及。
DDIA: Ch. 4: Storage & Retrieval

FoundationDB:分層式分散式交易基底

Distributed SQL
軟體/分散式資料庫基底FoundationDB Inc.(2009 年創立);2015 年被 Apple 收購、2018 年開源;SIGMOD 論文發表於 2021
解決的問題:許多分散式資料庫都需要可序列化交易,但反覆打造可靠的交易基礎設施非常困難。
解決方式:FoundationDB 將交易核心與上層的 layer 及儲存抽象分離。
重要性:示範了在強大的分散式交易基底之上,以分層方式建構多種資料模型的路徑。
DDIA: Ch. 8: TransactionsCh. 10: Consistency & Consensus

pgvector 與 PostgreSQL 內建向量搜尋

AI / Vector retrieval
軟體/擴充套件pgvector 開源專案;PostgreSQL 生態系
解決的問題:許多應用想要向量搜尋,卻不想把 embedding 與交易性的關聯式資料分開存放。
解決方式:pgvector 為 PostgreSQL 加入向量儲存與相似度搜尋。
重要性:讓 Postgres 成為許多 RAG 與語意搜尋應用的實用預設選項。
DDIA: Ch. 3: Data ModelsCh. 4: Storage & Retrieval

向量搜尋成為主流資料系統功能

AI / Vector retrieval
平台匯流PostgreSQL/pgvector、Redis、雲端供應商、向量資料庫廠商
解決的問題:語意搜尋、推薦系統與 RAG 需要讓向量檢索貼近營運與分析資料。
解決方式:通用資料平台開始在既有的儲存、快取與查詢功能之外,加入向量索引與搜尋。
重要性:縮小了向量資料庫與一般資料平台之間的界線。
DDIA: Ch. 4: Storage & Retrieval

串流資料庫(Materialize、RisingWave)

Streaming
軟體/串流 SQL 資料庫Materialize(Frank McSherry、Arjun Narayan);RisingWave Labs
解決的問題:儀表板與應用程式想要在快速變動的資料上永遠拿到最新結果,但重新計算查詢或手工打造串流作業既昂貴又複雜。
解決方式:串流資料庫透過增量視圖維護(incremental view maintenance)持續更新結果(Materialize 的 timely/differential dataflow;RisingWave 的雲端原生引擎),以標準 SQL 對外提供持續更新的物化視圖。
重要性:把串流處理重新框架為資料庫問題,讓即時分析可以用普通 SQL 查詢。
DDIA: Ch. 12: Stream ProcessingCh. 13: Streaming Philosophy

Apache Flink 2.0 分離式狀態管理

Streaming
軟體/串流處理Apache Flink 社群、Alibaba 與學術合作者
解決的問題:有狀態的串流處理器在本地狀態擴展、快照、重新調整規模與資源尖峰上都很吃力。
解決方式:Flink 2.0 以遠端儲存加上本地快取,將運算與狀態儲存解耦。
重要性:改善了有狀態即時處理的可擴展性與維運彈性。
DDIA: Ch. 12: Stream Processing

Amazon S3 Vectors

AI / Vector retrieval
雲端儲存功能Amazon Web Services
解決的問題:AI 應用的大型向量資料集若存放在核心儲存系統之外,可能既昂貴又難維運。
解決方式:S3 Vectors 為物件儲存加入原生的向量儲存與查詢支援。
重要性:預示 AI 檢索基本元件將更深地整合進一般雲端儲存。
DDIA: Ch. 4: Storage & Retrieval

面向 agent 的即時分析與語意檢索

AI / Vector retrieval
架構趨勢Apache Pinot、Redis、pgvector、S3 Vectors、lakehouse 廠商
解決的問題:應用程式與 agent 越來越需要新鮮、有情境且可查詢的資訊,而不只是靜態儀表板。
解決方式:即時分析引擎、向量檢索系統、快取與 lakehouse metadata 正圍繞著 agent 與應用服務情境匯流。
重要性:前沿課題從儲存資料,轉向讓營運、分析、串流與語意資料能被人類與 AI agent 使用。
DDIA: Ch. 12: Stream ProcessingCh. 13: Streaming Philosophy