網站 | API 文件 |聊天
DataFusion 是一個用 Rust 編寫的可擴展查詢引擎,使用 Apache Arrow 作為其記憶體格式。
該套件為開發人員提供庫和二進位文件,以建立快速且功能豐富的資料庫和分析系統,並針對特定工作負載進行客製化。請參閱用例範例。以下相關子項目針對最終使用者:
「開箱即用」的 DataFusion 提供 [SQL] 和 [ Dataframe
] API、卓越的效能、對 CSV、Parquet、JSON 和 Avro 的內建支援、廣泛的客製化以及出色的社群。
DataFusion 具有完整的查詢規劃器、列式、串流、多執行緒、向量化執行引擎和分區資料來源。您幾乎可以在所有方面自訂 DataFusion,包括附加資料來源、查詢語言、函數、自訂運算子等。有關更多詳細信息,請參閱架構部分。
以下是一些重要資訊的鏈接
DataFusion 非常適合建立特定領域的查詢引擎、新資料庫平台和資料管道、查詢語言等專案。它可以讓您從完全正常工作的引擎快速啟動,然後根據您的使用情況自訂這些功能。按一下此處查看已知使用者清單。
請參閱貢獻者指南和交流頁面以獲取更多資訊。
這個箱子有幾個功能,可以在Cargo.toml
中指定。
預設功能:
nested_expressions
:用於使用巢狀類型函數的函數,例如array_to_string
compression
:讀取使用xz2
、 bzip2
、 flate2
和zstd
壓縮的文件crypto_expressions
:加密函數,例如md5
和sha256
datetime_expressions
:日期和時間函數,例如to_timestamp
encoding_expressions
: encode
和decode
函數parquet
:支援讀取 Apache Parquet 格式regex_expressions
:正規表示式函數,例如regexp_match
unicode_expressions
:包括 unicode 感知函數,例如character_length
unparser
:支援將 LogicalPlan 反轉回 SQL選用功能:
avro
:支援讀取 Apache Avro 格式backtrace
:在錯誤訊息中包含回溯訊息pyarrow
:PyArrow 和 DataFusion 類型之間的轉換serde
: 啟用 arrow-schema 的serde
功能Rust 工具鏈版本在 Rust 版本中進行跟踪,並遵循語義版本控制。 Rust 工具鏈版本可以透過版本字串(如1.80.0
,或更普遍的major.minor.patch
來識別。
DataFusion 支援最近發布的 4 個穩定 Rust 次要版本以及過去 4 個月內發布的任何此類版本。
例如,給定版本1.78.0
、 1.79.0
、 1.80.0
、 1.80.1
和1.81.0
DataFusion 將支援 1.78.0 ,這是最新的1.81
之前的 3 個次要版本。
注意:如果針對目前 MSRV 發布了 Rust 修補程序,則 MSRV 將更新到特定的次要版本,其中包括其他策略之前的所有適用修補程序。
DataFusion 使用 MSRV CI 檢查強制執行 MSRV 策略
Apache DataFusion 中的公共方法可能會作為 API 生命週期的一部分而不斷發展。不建議使用的方法將依照政策逐步淘汰,確保API穩定健康。