arrow README

The project's README from github.com/apache/arrow. As one markdown file: README.md.

Apache Arrow

Fuzzing Status License BlueSky Follow

Powering In-Memory Analytics

Apache Arrow is a universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics. It contains a set of technologies that enable data systems to efficiently store, process, and move data.

Major components of the project include:

The ↗ icon denotes that this component of the project is maintained in a separate repository.

Arrow is an Apache Software Foundation project. Learn more at arrow.apache.org.

What's in the Arrow libraries?

The reference Arrow libraries contain many distinct software components:

Implementation status

The official Arrow libraries in this repository are in different stages of implementing the Arrow format and related features. See our current feature matrix on git main.

How to Contribute

Please read our latest project contribution guide.

If you are using AI coding tools, please review our AI-generated code guidance.

Getting involved

Even if you do not plan to contribute to Apache Arrow itself or Arrow integrations in other projects, we'd be happy to have you involved:

Continuous Integration Sponsors

We use runs-on for managing the project self-hosted runners. We use AWS for some of the required infrastructure for the project.

arrow (apache/arrow)

Searching Database…

17.2K ·GitHub
这是什么?Apache Arrow 是一种通用的列式格式,外加一套支持多语言的工具箱,用于快速数据交换和内存分析——这些技术能让数据系统高效地存储、处理和传输表格数据。
它是一个单独的库,还是一整套技术?是一整套。核心是一种标准的内存列式格式,此外还有 IPC 序列化格式、Flight RPC 协议、ADBC 数据库访问 API,以及约十几种语言的参考实现库。
怎么把 Arrow 引入到我的项目里?你不需要自己构建这个 monorepo——直接添加你所使用语言的官方库即可:C++、Java、Python、R、Ruby、Rust、Go、.NET、JavaScript、Julia 或 Swift。arrow.apache.org 上有各个实现的链接。
使用它需要运行一个数据库或服务器吗?不需要——列式格式及其容器可以直接在普通内存缓冲区上以进程内方式工作。只有当你有意基于 Flight 构建服务,或通过 ADBC 驱动连接数据库时,才会涉及服务器。
每种语言的库都一样完善吗?不是——各个官方库对格式的实现进度不同,所以在依赖某个具体特性之前,请先查看主分支上的功能支持矩阵,确认你的语言是否支持。
Arrow 是为谁打造的?面向数据系统的开发者——比如数据库、查询引擎、分析流水线——他们需要跨进程、跨语言地快速存储、处理和传输表格数据。
Arrow Flight 是什么?一个构建在 Arrow IPC 格式之上的 RPC 协议。它是搭建远程服务的基础构件,可用于按应用自定义的语义来交换 Arrow 数据,例如存储服务器或数据库。
ADBC 是什么?Arrow Database Connectivity(Arrow 数据库连接):一个由 Arrow 驱动的 API,提供用于访问数据库和查询引擎的驱动程序和库——相当于 Arrow 版的标准数据库连接方案。
Arrow 和 Parquet 是什么关系?Parquet 是磁盘上的文件格式,Arrow 则是内存中的表示方式。Arrow 库自带针对 Parquet、CSV 等常用格式的读写器,因此文件可以直接加载进列式容器。
Gandiva 是什么?一个基于 LLVM 的 Arrow 表达式编译器,位于 C++ 代码库中——是该项目中不太显眼但很有意思的组件之一。
Creator
apache
Size
231.9 MB
Stars
17.2K
Age
10y
Commits · 90 Days