Apache DataFusion 是使用 Rust 開發的高效能可擴展查詢引擎,在 2024 年成為 ClickBench 基準測試中最快的單節點查詢引擎。
30 天學習路徑將從基礎環境建置、第一個查詢開始,循序漸進深入架構解析、StringView 優化原理,最後探索自定義擴展、生產部署等進階主題。透過深入原始碼分析,將完整解構從 LogicalPlan 到 ExecutionPlan 的轉換流程,理解現代查詢引擎的設計精髓。
前言 在前兩天的文章中,我們了解了 DataFusion 如何將 SQL 查詢轉換為 logical plan 。今天會繼續探討從 logical plan 到...
前言 在前三天的文章中,我們介紹了執行一個 SQL 查詢的完整生命週期。今天我們將深入探討 LogicalPlan 的設計模式,理解為什麼它採用 Enum 設計...
前言 昨天我們了解了 LogicalPlan 的設計模式,包括其 Enum 結構和各種變體。今天我們要探討構成 LogicalPlan 的主要元件表達式系統(E...
前言 昨天我們聊了 LogicalPlan 的設計模式和表達式系統,今天我們要深入 DataFusion 的優化器框架。雖然第10天我們已經簡單介紹過優化規則,...
Day 15: 物理計劃生成 - 從邏輯到物理的橋樑 前言 在昨天的學習中,我們深入理解了優化器框架的設計,特別是 OptimizerRule 體系如何通過固定...
前言 在前面的章節中,我們已經理解 DataFusion 如何將 SQL 解析為 LogicalPlan,並透過 Optimizer 進行優化,最後由 Phys...
前言 在昨天的文章中,我們探討了 ExecutionPlan trait 的核心設計,了解了 schema()、properties() 和 execute()...
前言 在昨天的文章中,我們探討了 ExecutionPlan 的 Stream 執行模型,了解了 SendableRecordBatchStream 如何透過...
前言 在昨天的文章中,我們探討了無狀態的 ProjectionExec 和 FilterExec 算子。今天我們將學習需要狀態管理的聚合算子(Aggregate...
前言 在昨天的文章中,我們深入探討了 DataFusion 聚合算子的核心機制並理解聚合操作如何透過狀態管理和 Hash Table 來處理分組數據。然而在特定...