Apache DataFusion 是使用 Rust 開發的高效能可擴展查詢引擎,在 2024 年成為 ClickBench 基準測試中最快的單節點查詢引擎。
30 天學習路徑將從基礎環境建置、第一個查詢開始,循序漸進深入架構解析、StringView 優化原理,最後探索自定義擴展、生產部署等進階主題。透過深入原始碼分析,將完整解構從 LogicalPlan 到 ExecutionPlan 的轉換流程,理解現代查詢引擎的設計精髓。
前言 在前兩天的文章中,我們探討了聚合算子的兩種策略:Hash Aggregation 與 Sort-based Aggregation 並觀察 DataFus...
前言 在昨天的文章中,我們探討了 Hash Join 的原理和實現,學習到 Hash Join 透過兩階段模型(Build Phase 和 Probe Phas...
前言 在 Day 14 我們初步認識了 TableProvider 作為數據源抽象的概念,Day 17 也看到了它在謂詞下推中的實際應用。今天我們將深入探討 T...
前言 昨天我們探討了 TableProvider 機制,了解了 Partition Pruning 和多層次優化的概念。今天我們將深入 Parquet 讀取的實...
前言 在 Day 6 中,我們已經學習了視窗函數的基本概念、OVER 子句語法(PARTITION BY、ORDER BY、Frame)以及常見函數(ROW_N...
前言 在 Day 14 的文章中,我們初步認識了分區(Partitioning)的概念,了解 DataFusion 支援 RoundRobin、Hash 等分區...
前言 在 Day 25 學習並行執行與分區策略時,我們多次提到了記憶體的重要性。當時我們了解到,如果 target_partitions 設定過高,每個分區可用...
前言 回顧 Day 2 的內容可以知道 DataFusion 建構在 Apache Arrow 之上。而 Arrow 後續推出新的數據類型 StringView...
前言 在 Day 27,我們探討了 StringView 如何提升字串處理效能。這是一種「靜態」的優化——透過更好的數據表示來加速操作。今天,我們將探討另一個層...
前言 經過近一個月的學習,從實戰入門到深入原始碼,我們已經對 DataFusion 有了相當深入的理解。 Apache DataFusion 是一個由全球貢獻者...