在本書的前兩部分中,我們討論了資料的儲存、查詢與分散式系統的挑戰。第三部分將焦點轉向一個核心問題:如何從既有資料中衍生出新的資料

記錄系統與派生資料#

大多數資料系統可以歸類為兩種角色:

  • 記錄系統(System of Record):作為資料的權威來源,每筆資料在此被首次寫入,發生衝突時以此為準。
  • 派生資料系統(Derived Data System):從既有資料經過轉換或處理後產生的結果,例如快取、索引、物化視圖或機器學習模型。派生資料具備可重建性——若遺失,可從原始來源重新計算。

這兩者的區分不在於技術工具本身,而在於應用程式如何使用它們。理解這個區分,有助於釐清資料在系統中的流動方式。

本部分章節#

  • 第十章 — 批次處理:從 Unix 工具的設計哲學出發,介紹 MapReduce 及更新一代的資料流引擎,探討如何對大規模資料集進行高效的離線處理。
  • 第十一章 — 串流處理:將批次處理的概念延伸至無界、持續到達的資料流,討論串流的表示方式、與資料庫的關係,以及即時處理資料流的技術。
  • 第十二章 — 資料系統的未來:綜合全書所學,探討如何將不同的技術組合為一致且正確的應用架構,並討論資料系統設計中的倫理議題。

核心思維#

批次處理與串流處理並非對立的選擇,而是互補的工具。本部分的目標是建立一個統一的思維框架,讓你能根據實際需求選擇合適的資料處理方式,並理解這些技術如何共同構成可靠的資料系統。