- 主張
- 這種 workload DuckDB 會贏:向量化執行加欄式儲存。
- 證據
EXPLAIN ANALYZE· cold vs warm cache · IO profile — 12.4s → 0.8s- 反例
- 但單列的 point lookup,Postgres 的 index scan 快 40×。
- 決策
- 分析功能就嵌 DuckDB。主要的 OLTP 資料庫不要換掉。
課程內容
一個名額,整套單機核心都給你。
你買到的是 Data Systems Foundations 單機核心的早鳥名額:Phase 0–5 加上單機課程專題,用八週線上直播帶你上完,之後永久是你的。
單機核心永久擁有
Phase 0–5 加上單機課程解剖專題。整個單機層的內容都寫完了,評分也已經在跑,課上完之後還是你的。
八週,線上直播
每週一場直播,帶你跑一次這個循環,實驗跟實作都當場做,不是坐在那邊聽我講。
你自己的 private labs repo
作業全部在 Git repo 裡動手做。開了 PR,CI 會用隱藏測試跑一份成績單給你:只給分數,不給答案。
Playground、玩具實作、真實案例
每個階段都有可以互動的 playground、一版一版長出來的玩具引擎,還有真的在線上跑的系統案例。
兩輪真人回饋
針對你的機制筆記跟 mini-autopsy 直接給回饋。CI 只會告訴你測試沒過,不會告訴你推論哪裡草率。
一小班人陪你一起走完
同一週,十幾個人卡在同一道牆前面。把你的數字貼出來,看誰的跟你對不上,卡住了就開口問。討論寫下來就留著,之後在課程站裡還搜得到。
適合誰
適合誰,也直接說不適合誰。
話先講在前面。這門課是開給那種平常在寫上線程式、又很想知道底下那套資料系統在幹嘛的人。想找面試考古題,或想躺著看影片的話,這門課大概會讓你失望。
這幾種人,來就對了
- 你寫的是會上線的程式,比起用猜的,你更想知道一句 query 下去,底下實際發生了什麼事。
- Python 你用得很順、多表 JOIN 也寫得出來,但你沒自己寫過 storage engine,也沒讀過 query planner。
- 現在 SQL 都 AI 幫你寫,你想知道的是它什麼時候會錯、又錯在哪。
- 你是動手才學得起來的人。B-tree 的文章看再多,都不如自己刻一個出來。
這幾種人,建議先別報
- 你要的是 system design 面試準備。這八週練的是自己的判斷力,不是背標準答案。
- 你要的是工具教學,某個資料庫的哪個功能怎麼開。我們教的是每個資料庫底下共通的那層機制。
- 你是來學寫程式或 SQL 基礎的。這些我們預設你已經會了,課程講的是資料庫內部怎麼運作。
- 你想用看影片的方式學。這門課是在 Git repo 裡動手寫、由 CI 打分。
- 你現在馬上就要分散式。這一班只有單機核心(Phase 0–5),分散式之後才開。
課程方法論
同一套循環,每個階段都再跑一遍。
這門課不是背資料庫結論,而是透過反覆實驗,記住少量可遷移的機制模型、成本模型與不變量。同一套六步循環,每個階段跑一次,跑到你不用想就會做。
- 1預測
動手之前先寫下一個能被打臉的預測:會發生什麼、哪個選項會贏、什麼結果代表你猜錯了。
- 2觀察
在 DuckDB、Postgres、SQLite 上重現一次,配上 query plan 跟 benchmark 數字。
- 3隔離
一次只動一個變因。動到兩個,跑出來的結果你自己也解釋不了。
- 4實作
分階段刻一個玩具版本,一次只加一個概念。教科書一句話帶過的取捨,你會在自己的 code 裡正面碰上。
- 5解釋與比較
同類的擺一起比:B-tree 對 LSM、row 對 column、Postgres 對 DuckDB,然後想清楚它們為什麼做了不一樣的選擇。
- 6套用
把整套做法搬到一個課綱上根本沒出現過的系統上。每個階段結尾都有一次 mini-autopsy,就是課程專題的縮小版。
課程大綱
九個階段。兩個課程專題。
完整的 Data Systems Foundations 主線,分成兩層。創始班是單機這層:Phase 0–5 加上單機課程專題,永久擁有。分散式那層(Phase 6–8 加分散式課程專題)之後才開,創始班學員到時候 7 折。每個階段都跑同一套六步循環,每一層都以一場完整的系統解剖收尾。
創始班 · 單機層 · 即將開課
-
00
Phase 0 — 量測與工作負載
沒量過就不要優化。
-
01
Phase 1 — SQL、Query Plan、執行
一句 SQL 怎麼變成實際的工作。
-
02
Phase 2 — 資料模型與查詢語言
同一份資料,用 document、graph、wide-column 各做一次。
-
03
Phase 3 — 儲存引擎與索引
B-tree、LSM-tree,還有查一筆資料實際要付多少成本。
-
04
Phase 4 — 交易、並行、當機復原
隔離等級,還有它們各自擋掉哪些 anomaly。
-
05
Phase 5 — OLAP、欄式儲存、向量化執行
為什麼分析引擎都存成一欄一欄的。
-
課程專題 · 系統解剖 — 單機
沒人幫你,自己把一個完全沒碰過的系統拆開。看它長怎樣 →
分散式層 · 創始班學員之後 7 折
-
06
Phase 6 — 分散式資料系統 還沒開
Replication、partitioning,還有共識演算法。
-
07
Phase 7 — 串流與事件處理 還沒開
Log、window,還有 exactly-once。
-
08
Phase 8 — Lakehouse 與雲端資料架構 還沒開
長在 object storage 上的 table format。
-
課程專題 · 系統解剖 — 分散式 還沒開
沒人幫你,自己把一個分散式系統拆開。
課程專題
前面所有東西,都是為了最後這場系統解剖。
每個階段結尾都會丟幾題針對真實系統的解剖題給你。課程專題是完整版。你要寫一份報告:主張放最前面,後面接你親手跑過的實驗,還有一個你刻意去找來打自己臉的反例,最後給一個站得住腳的決定。大概長這樣:
你的課程專題,是把一個你根本不熟的單機資料系統整個解剖一遍。一行指令就能在你自己機器上把那個引擎跑起來,五個調查模組帶你走過它的 query 層、storage engine、並行模型跟當機復原路徑。而且每一個主張,都要附上一個你自己跑過的實驗。
常見問題
掏錢之前,先把話說清楚。
我們還很早期。哪些已經定案、哪些還在調,這裡都直說。
我現在就可以報名嗎?
還不行,報名還沒開,網站現在也還不收錢。先加候補(留 email 加兩個小問題),創始名額一開放我們就寄信給你,附上結帳連結跟怎麼開始。名額只有 15 個,候補名單優先。Phase 1 開始前隨時可以全額退費,不問原因。
我需要什麼底子?
你平常寫的就是會上線的程式。玩具實作跟 lab 工具都是 Python,所以你讀跟寫都要夠順。SQL 至少要寫得出多表 JOIN。寫程式跟 SQL 基礎不在課程範圍內,我們預設你已經會,課程直接從資料庫內部講起。
Phase 6–8 的分散式,我有拿到嗎?
創始班沒有。它是單機層:Phase 0–5 加上單機課程專題,永久是你的。分散式那層(Phase 6–8 加分散式課程專題)之後會另外開一班,你是創始班學員,開放的時候 7 折。
要跑這些 lab,我要準備什麼?
你需要:我們課程 GitLab 的帳號(邀請信我們會寄給你)、Docker,再加一個吃得下 Dev Containers 的編輯器(VS Code 最順)。你會拿到自己的 private labs repo,用設定好的 dev container 開起來,整套環境就已經裝好了,playground 的 port 也會自動 forward 到你的瀏覽器。Windows、macOS、Linux 都可以,只要跑得動 Docker Desktop(Windows/macOS)或 Docker Engine(Linux)就行。不用 GPU、不用雲端帳號,也不會有額外的帳單。
這是看影片,還是動手做?
動手做,全部在 Git repo 裡。每個階段都是文字筆記加互動 playground、拿真實系統做的實驗、一版一版長出來的玩具實作,還有一個線上系統的案例;作業交上去由 CI 打分,成績單直接貼在你的 PR 上。所有內容也都能當成一個私人課程站來讀、來搜。不是那種「YouTube 加小測驗」。
這門課用什麼語言上?
課程教材(文字筆記、lab、案例、課程站)都是英文,線上直播課用中文上。之後可能會加開英文授課的班,如果你會想上,加入候補的時候順便跟我們說一聲,我們就是靠這個看有多少人要。
課程的節奏怎麼跑?
直播每週固定時間一場,我們很希望你每場都到。大家同時在線上一起走一遍,跟你自己補錄影差很多。真的有哪一場來不了也沒關係,每場都有錄影,照自己的步調追回來就好。
退費怎麼算?
Phase 1 開始前隨時全額退費,不問原因。寄信到 support@datasystem.school 就好,我們會處理。
誰看得到我的作業跟成績?
只有你跟講師,沒有別人。每個人都有自己的 private GitLab repo;作業就是裡面的 merge request,成績單也貼在那裡。課程更新會進 main,所以 git pull 就能同步到最新內容,又不會動到你寫的東西。
報名
創始班,陪我們把這門課開起來。
就一種方案,一個價格。這是 beta 班,價錢是算給願意陪我們開第一班的人。整套單機核心你都拿得到,創始價一次鎖住,之後也不會往上調。
創始班
八週線上直播 · 單機核心永久擁有。
- 永久擁有 Phase 0–5 + 單機課程解剖專題
- 之後開分散式班(Phase 6–8 + 分散式課程專題)7 折
- 八週線上直播,每週一場,帶你一起跑這個循環
- 你自己的 private labs repo,隱藏測試 CI 打分
- Playground、玩具實作,還有真實線上系統的案例
- 兩輪真人回饋,看你的筆記跟 mini-autopsy
- 一小班同學可以互相對數字、討論,外加一個私人的課程站
- 你的創始價永久鎖住,之後開的班就是原價了
現在不用付錢。先把名字放上候補,位子一開我們就通知你。
資源
六十年的資料系統史,還有底下那些論文。
兩個免費的延伸站台,材料跟這門課同源:一條把資料系統怎麼走到今天講清楚的互動時間軸,還有撐起這條軸線的那些奠基性論文,每一篇都濃縮成一頁你真的讀得完的重點。都免費開放,不用註冊。
資料系統時間軸
這門課裡的每個系統,都落在一條長達六十年的突破鏈上。我們把整條鏈整理了出來——從 1960 年代最早的資料庫,一路到今天的 AI 原生資料系統:關鍵人物、論文、每項突破實際解決的問題,還對照了 DDIA 的章節。
經典論文,精煉版
撐起這些里程碑的奠基性論文,從 1970 年的 Codd 到 2025 年的 Flink 2.0——每一篇都完整讀過,機制、實驗數據、限制都不略過,再濃縮成一頁。每篇都照同樣的十一個段落寫,任兩篇都能直接對照著讀。