Apache Arrow 總覽
Apache Arrow 是一個軟體開發平台,用於建置處理和傳輸大型資料集的高效能應用程式。它的設計旨在提升分析演算法的效能,以及提高在不同系統或程式語言之間移動資料的效率。
Apache Arrow 的一個關鍵組件是其記憶體內欄狀格式,這是一種標準化的、與語言無關的規範,用於在記憶體中表示結構化、類似表格的資料集。這種資料格式具有豐富的資料類型系統(包括巢狀和使用者定義的資料類型),旨在支援分析資料庫系統、資料框架函式庫等的需求。
欄狀格式速度快
Apache Arrow 格式允許計算程序和執行引擎在掃描和迭代大量資料區塊時,最大化其效率。特別是,連續的欄狀佈局能夠使用現代處理器中包含的最新 SIMD(單指令多資料)操作進行向量化。



標準化節省成本
在沒有標準的欄狀資料格式的情況下,每個資料庫和語言都必須實作自己的內部資料格式。這產生了大量的浪費。在系統之間移動資料涉及成本高昂的序列化和反序列化。此外,常見的演算法通常必須為每種資料格式重新編寫。
Arrow 的記憶體內欄狀資料格式是這些問題的現成解決方案。使用或支援 Arrow 的系統可以在它們之間以幾乎零成本的方式傳輸資料。此外,它們不需要為每個其他系統實作自訂連接器。除了這些節省之外,標準化的記憶體格式還促進了演算法函式庫的重複使用,甚至跨語言。
Arrow 函式庫
Arrow 專案包含函式庫,使您能夠在多種語言中使用 Arrow 欄狀格式的資料。C++、C#、Go、Java、JavaScript、Julia、Rust 和 Swift 函式庫包含 Arrow 格式的不同實作。這些函式庫經過彼此的 整合測試,以確保它們對格式的忠實度。此外,用於 C (GLib)、MATLAB、Python、R 和 Ruby 的 Arrow 函式庫是建立在 C++ 函式庫之上的。
這些官方函式庫使第三方專案能夠處理 Arrow 資料,而無需自行實作 Arrow 欄狀格式。它們還包含許多軟體組件,這些組件有助於解決與資料進出遠端儲存系統以及透過網路介面移動 Arrow 格式資料相關的系統問題,以及其他 使用案例。