Apache Arrow 的原生 Go 語言函式庫


已發布 2018年3月22日
作者 Apache Arrow PMC (pmc)

自 2016 年初啟動以來,Apache Arrow 一直快速成長。在超過 120 位不同貢獻者的努力下,我們已發布九個主要版本。專案的範疇也已擴展。我們最初專注於開發標準化的記憶體內 columnar 資料格式,這現在已成為專案的支柱。從那時起,透過專案的新增功能(例如 Plasma 共享記憶體物件儲存),我們已發展成為更通用的跨語言記憶體內資料分析平台。專案的主要目標是讓資料系統開發人員能夠快速處理和移動資料。

到目前為止,我們已正式開發 C++、Java 和 JavaScript 的原生 Arrow 實作。我們已為 C++ 函式庫在 C 語言(使用 GLib 函式庫)和 Python 中建立綁定層。我們也看到在 Go、Lua、Ruby 和 Rust 中開發 Arrow C++ 函式庫介面的努力。雖然綁定層有多種用途,但原生實作可能具有優勢,因此我們一直渴望看到未來在 Go 和 Rust 等不斷發展的系統語言中進行原生實作的工作。

去年十月,Stuart CarnieNathaniel CookChris Goller 等工程師,他們是 InfluxData 的員工,開始開發原生 [Go 語言實作 Apache Arrow 記憶體內 columnar 格式,以便在 InfluxDB 等基於 Go 的資料庫系統中使用。我們很高興宣布 InfluxData 已將此原生 Go 實作 捐贈給 Apache Arrow 專案,該實作將在該專案中繼續開發。這項工作具有與 Go 執行階段的低階整合,以及對 SIMD 指令集的原生支援。我們期待與 Go 社群更緊密地合作,以解決記憶體內分析和資料互操作性問題。

Apache Arrow implementations and bindings

Apache 軟體基金會的座右銘之一是「社群重於程式碼」。透過在許多程式語言生態系統中建立開放且協作的開發社群,我們將能夠為資料開發人員面臨的系統問題開發更好、更持久的解決方案。

我們對 Apache Arrow 專案的未來感到興奮。為像 Go 這樣流行的系統程式語言新增一流的支援是邁向成功的重要一步。我們歡迎 Go 社群的其他人士參與專案。我們也歡迎希望探索為其他尚未表示的程式語言建立 Arrow 支援的人士。請造訪 https://arrow.dev.org.tw 以瞭解更多資訊,並加入郵件列表 dev@arrow.apache.org