iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Rust

DataFusion 闖關攻略:30 天學習 Rust 查詢引擎之旅 系列

Apache DataFusion 是使用 Rust 開發的高效能可擴展查詢引擎,在 2024 年成為 ClickBench 基準測試中最快的單節點查詢引擎。

30 天學習路徑將從基礎環境建置、第一個查詢開始,循序漸進深入架構解析、StringView 優化原理,最後探索自定義擴展、生產部署等進階主題。透過深入原始碼分析,將完整解構從 LogicalPlan 到 ExecutionPlan 的轉換流程,理解現代查詢引擎的設計精髓。

參賽天數 23 天 | 共 23 篇文章 | 2 人訂閱 訂閱系列文 RSS系列文 團隊動鼠做
DAY 11

Day 11: 查詢執行生命週期 Part 3 - 優化與執行

前言 在前兩天的文章中,我們了解了 DataFusion 如何將 SQL 查詢轉換為 logical plan 。今天會繼續探討從 logical plan 到...

2025-09-25 ‧ 由 a834567 分享
DAY 12

Day 12: LogicalPlan 深入理解 Part 1 - 設計模式

前言 在前三天的文章中,我們介紹了執行一個 SQL 查詢的完整生命週期。今天我們將深入探討 LogicalPlan 的設計模式,理解為什麼它採用 Enum 設計...

2025-09-26 ‧ 由 a834567 分享
DAY 13

Day 13: LogicalPlan 深入理解 Part 2 - 表達式系統

前言 昨天我們了解了 LogicalPlan 的設計模式,包括其 Enum 結構和各種變體。今天我們要探討構成 LogicalPlan 的主要元件表達式系統(E...

2025-09-27 ‧ 由 a834567 分享
DAY 14

Day 14 優化器框架深層解析 - 從設計哲學到實作細節

前言 昨天我們聊了 LogicalPlan 的設計模式和表達式系統,今天我們要深入 DataFusion 的優化器框架。雖然第10天我們已經簡單介紹過優化規則,...

2025-09-28 ‧ 由 a834567 分享
DAY 15

Day 15: 物理計劃生成 - 從邏輯到物理的橋樑

Day 15: 物理計劃生成 - 從邏輯到物理的橋樑 前言 在昨天的學習中,我們深入理解了優化器框架的設計,特別是 OptimizerRule 體系如何通過固定...

2025-09-29 ‧ 由 a834567 分享
DAY 16

Day 16: ExecutionPlan 體系架構 Part 1 - Trait 設計

前言 在前面的章節中,我們已經理解 DataFusion 如何將 SQL 解析為 LogicalPlan,並透過 Optimizer 進行優化,最後由 Phys...

2025-09-30 ‧ 由 a834567 分享
DAY 17

Day 17: ExecutionPlan 體系架構 Part 2 - Stream 執行模型

前言 在昨天的文章中,我們探討了 ExecutionPlan trait 的核心設計,了解了 schema()、properties() 和 execute()...

2025-10-01 ‧ 由 a834567 分享
DAY 18

Day 18: 基礎執行算子 - Projection 和 Filter

前言 在昨天的文章中,我們探討了 ExecutionPlan 的 Stream 執行模型,了解了 SendableRecordBatchStream 如何透過...

2025-10-02 ‧ 由 a834567 分享
DAY 19

Day 19: 聚合算子 Part 1 - Aggregate 執行流程

前言 在昨天的文章中,我們探討了無狀態的 ProjectionExec 和 FilterExec 算子。今天我們將學習需要狀態管理的聚合算子(Aggregate...

2025-10-03 ‧ 由 a834567 分享
DAY 20

Day 20: 聚合算子 Part 2 - Hash vs Sort Aggregate

前言 在昨天的文章中,我們深入探討了 DataFusion 聚合算子的核心機制並理解聚合操作如何透過狀態管理和 Hash Table 來處理分組數據。然而在特定...

2025-10-04 ‧ 由 a834567 分享