适用于 Apache Arrow 的原生 Go 库


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

自 2016 年初启动以来,Apache Arrow 发展迅速。我们通过 120 多位不同贡献者的努力发布了九个主要版本。项目的范围也扩大了。我们最初专注于开发标准化的内存列式数据格式,该格式现已成为项目的支柱。从那时起,我们通过项目的新增功能(如 Plasma 共享内存对象存储)发展成为一个更通用的跨语言内存数据分析平台。该项目的主要目标是使数据系统开发人员能够快速处理和移动数据。

到目前为止,我们已经正式用 C++、Java 和 JavaScript 开发了原生 Arrow 实现。我们已经用 C(使用 GLib 库)和 Python 为 C++ 库创建了绑定层。我们还看到了在 Go、Lua、Ruby 和 Rust 中开发 Arrow C++ 库接口的工作。虽然绑定层有多种用途,但原生实现可能会有好处,因此我们一直渴望看到未来在 Go 和 Rust 等不断发展的系统语言中进行原生实现的工作。

去年 10 月,InfluxData 的工程师 Stuart CarnieNathaniel CookChris Goller 开始开发 Apache Arrow 内存列式格式的原生 [Go 语言实现],用于基于 Go 的数据库系统(如 InfluxDB)。我们很高兴地宣布,InfluxData 已将此原生 Go 实现捐赠给 Apache Arrow 项目,并将继续开发。这项工作具有与 Go 运行时底层集成和对 SIMD 指令集的原生支持的特点。我们期待与 Go 社区更紧密地合作,解决内存分析和数据互操作性问题。

Apache Arrow implementations and bindings

Apache 软件基金会 的一个宗旨是“社区胜于代码”。通过在许多编程语言生态系统中建立一个开放协作的开发社区,我们将能够为数据开发人员面临的系统问题开发更好、更持久的解决方案。

我们对 Apache Arrow 项目的未来充满期待。为 Go 这样的流行系统编程语言添加一流的支持是前进道路上的重要一步。我们欢迎 Go 社区的其他人参与到该项目中来。我们也欢迎希望探索为其他尚未得到支持的编程语言构建 Arrow 支持的人。访问 https://arrow.apache.org 了解更多信息,并加入邮件列表 dev@arrow.apache.org