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 Carnie、Nathaniel Cook 和 Chris Goller 开始开发 Apache Arrow 内存列式格式的原生 Go 语言实现,用于 Go 数据库系统(如 InfluxDB)。我们很高兴地宣布 InfluxData 已将该原生 Go 实现 捐赠给 Apache Arrow 项目,并将在那里继续开发。这项工作具有与 Go 运行时进行低级集成以及对 SIMD 指令集的原生支持。我们期待与 Go 社区更紧密地合作,解决内存分析和数据互操作性问题。
Apache 软件基金会 的一个口号是“社区重于代码”。通过在许多编程语言生态系统中构建开放和协作的开发社区,我们将能够开发出更好、更持久的解决方案,以解决数据开发人员面临的系统问题。
我们对 Apache Arrow 项目的未来充满期待。为 Go 这样流行的系统编程语言添加一流的支持是前进道路上的重要一步。我们欢迎 Go 社区的其他人参与到项目中。我们也欢迎希望探索为尚未支持的编程语言构建 Arrow 支持的其他人。在 https://arrow.apache.org 了解更多信息,并加入邮件列表 dev@arrow.apache.org。