用于 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 这样的增长中的系统语言中进行原生实现的工作。
去年 10 月,InfluxData 的工程师 Stuart Carnie、Nathaniel Cook 和 Chris Goller 开始开发 [Go 语言原生实现](https://github.com/influxdata/arrow),即 Apache Arrow 内存列式格式,用于基于 Go 的数据库系统(如 InfluxDB)。我们很高兴地宣布,InfluxData 已经 将这个原生 Go 实现捐赠给了 Apache Arrow 项目,它将在那里继续开发。这项工作具有与 Go 运行时的底层集成以及对 SIMD 指令集的原生支持。我们期待与 Go 社区更紧密地合作,解决内存分析和数据互操作性问题。

Apache 软件基金会的信条之一是“社区重于代码”。通过在许多编程语言生态系统中构建一个开放和协作的开发社区,我们将能够为数据开发人员面临的系统问题开发更好和更长久的解决方案。
我们对 Apache Arrow 项目的未来感到兴奋。为像 Go 这样流行的系统编程语言添加一流的支持是重要的第一步。我们欢迎 Go 社区的其他成员参与该项目。我们也欢迎其他希望探索为尚未代表的其他编程语言构建 Arrow 支持的人。请访问 https://arrow.apache.org 了解更多信息,并加入邮件列表 dev@arrow.apache.org。