使用案例

以下是一些 Apache Arrow 格式和函式庫的範例應用。如需更多資訊,請參閱我們的部落格以及由 Arrow 技術支援的專案列表。

讀取/寫入欄狀儲存格式

許多 Arrow 函式庫提供便捷的方法來讀取和寫入欄狀檔案格式,包括 Arrow IPC 檔案格式 ("Feather") 和 Apache Parquet 格式。

除了單一檔案讀取器之外,某些函式庫 (C++, Python, R) 支援讀取整個檔案目錄,並將它們視為單一資料集。這些資料集可能位於本機檔案系統或遠端儲存系統上,例如 HDFS、S3 等。

在本機共享記憶體

Arrow IPC 檔案可以在本機進行記憶體映射,這讓您能夠處理比記憶體更大的資料,並跨語言和程序共享資料。

Arrow 專案包含 Plasma,這是一個以 C++ 撰寫並在 Python 中公開的共享記憶體物件儲存區。Plasma 將不可變的物件保存在共享記憶體中,以便許多客戶端可以跨程序邊界有效地存取它們。

Arrow 格式也定義了一個 C 資料介面,它允許在單一程序內進行零複製資料共享,而無需任何建置時或連結時的依賴性需求。例如,這允許 R 使用者使用 reticulate 套件來存取 pyarrow 基礎的專案

透過網路移動資料

Arrow 格式允許透過網路 (或任何類型的串流傳輸) 序列化和傳輸欄狀資料。Apache Spark 使用 Arrow 作為資料交換格式,並且 PySparksparklyr 都可以利用 Arrow 在傳輸資料時獲得顯著的效能提升。Google BigQueryTensorFlowAWS Athena其他也以類似的方式使用 Arrow。

Arrow 專案還定義了 Flight,這是一個客戶端-伺服器 RPC 框架,用於建構根據應用程式定義的語意交換資料的豐富服務。

用於分析的記憶體內資料結構

Arrow 格式旨在實現快速運算。一些專案已經開始利用該設計。在 Apache Arrow 專案中,DataFusion 是一個使用 Rust 建構的、使用 Arrow 資料的查詢引擎。