Apache Arrow 的原生 Go 库


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

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

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

去年十月,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