關於 Spark 與 DataFusion 、Comet 的 30 天探索之旅,深究為什麼這樣設計。本系列將潛入一條 SQL 查詢的最深處,展開五層架構的縱剖面探險:從最底層的硬體指令(SIMD)與記憶體佈局出發,一路向上拆解儲存格式(Parquet)、DataFusion 查詢引擎、Iceberg 表格式,最後回到 Spark 與 Rust 的跨界整合,徹底看懂現代大數據引擎如何榨乾硬體效能。
嗨嗨~昨天 D10 走完 Iceberg 那條漏斗,catalog、metadata、manifest list、manifest 到 data file,一張...
昨天 D11 介紹完晚物化,WHERE g = 5 拿到一張「這幾列符合條件」的位圖,還沒真的把 payload 解出去。那輸出前還要跟 delete 交集嗎?...
快到鐵人賽挑戰的一半了,我們從 D9 到 D12 走完儲存這一層,Parquet 內部剖了、了解了 Iceberg 四層漏斗、晚物化位圖跟 delete 交集也...
昨天 D13 講為什麼要有可嵌入引擎,答案是 DataFusion 要成為能被 Spark、Ballista、新創的分析服務通用套用的執行引擎。可是講完架構動機...
不知不覺鐵人賽走到過半了,標題那句「1+1+1>3 ~ Spark 與 DataFusion、Comet 效能煉金術 ~」裡的第三個 1,那顆叫 Come...
D14 讀完 morsel-driven 論文,知道一句 SQL 丟進多核機器時,並行執行的骨架該長什麼樣:morsel 派工、work-stealing、pi...
D16 講完資料怎麼在 DataFusion 內部流:拉、一批一批、跑在 tokio 上,pipeline breaker 是 async 的等待點。今天緊接著...
D16 講過 DataFusion 怎麼執行(拉式、batch、tokio)、D17 講記憶體資源的協調。今天要討論是什麼東西這麼關鍵,幾乎決定整條 SQL 查...
D18 把 join 演算法選擇拆開來看,最後提一句 Sort、hash 都有 spill 路徑 ,但 spill 到底怎麼運作?今天把三件事湊在一起說:...
D19 最後提到 pushdown 能不能生效,要回到 TableProvider 來看,今天就來說明這一段,順便看 Iceberg 表格式版本的演進。 今天回...