使用“Apache Arrow”的项目和产品名称
创建用于 Apache Arrow 的产品和项目的组织,以及相关的营销材料,应注意尊重“Apache Arrow”及其徽标的商标权。有关正确使用 ASF 商标的全面且权威的指南,请参阅 ASF 商标指南及相关的 常见问题解答。
完全不包含“Apache Arrow”的名称与 Apache Arrow 项目没有商标方面的问题。我们推荐这样做。
像“Apache Arrow BigCoProduct”这样的名称是不允许的,通用的包含“Apache Arrow”的名称也是如此。然而,上述链接描述了一些例外情况,例如“BigCoProduct, powered by Apache Arrow”(由 Apache Arrow 提供支持的 BigCoProduct)或“BigCoProduct for Apache Arrow”(面向 Apache Arrow 的 BigCoProduct)等名称。
创建软件标识符(Maven 坐标、模块名称等)如“arrow-foo”是一种常见的做法。这些是被允许的。在描述中对商标的名义使用也始终是允许的,例如“BigCoProduct is a widget for Apache Arrow”(BigCoProduct 是面向 Apache Arrow 的小部件)。
希望包含 Apache Arrow 徽标的项目和文档应使用官方徽标,并遵守 视觉识别 (Visual Identity) 页面上列出的指南。
由 Apache Arrow 提供支持的项目
要将您自己添加到此列表中,请提交一个 拉取请求 (pull request),添加您的组织名称、网址、您正在使用的 Arrow 组件列表以及对您的用例的简短描述。
- Apache Parquet: 一种列式存储格式,适用于 Hadoop 生态系统中的任何项目,无论其选择何种数据处理框架、数据模型或编程语言。其 C++ 和 Java 实现提供了与 Arrow 数据结构之间向量化的读写功能。
-
Apache Spark: Apache Spark™ 是一款用于大规模数据处理的快速通用引擎。Spark 使用 Apache Arrow 来
- 提高 Spark DataFrame 与 pandas DataFrame 之间转换的性能
- 在 PySpark 中启用一套向量化用户定义函数 (
pandas_udf)。
- ArcPy: ArcPy 是 Esri 全面且强大的 API,用于在 ArcGIS 产品套件中执行和自动化空间分析、数据管理和转换任务(需获得许可)。ArcPy 支持将 Arrow 表作为输入和输出。
- AWS Data Wrangler: 扩展了 Pandas 库的功能,将 DataFrames 连接到 AWS 数据相关服务,如 Amazon Redshift、AWS Glue、Amazon Athena、Amazon EMR、Amazon QuickSight 等。
- Bodo: Bodo 是一款通用的 Python 分析引擎,它将高性能计算 (HPC) 架构民主化,使主流企业能够高效扩展 Python 分析工作负载。Bodo 使用 Arrow 来支持 Parquet 文件的 I/O,并为数据操作提供内部支持。
- ClickHouse: 一种开源分析数据库管理系统。ClickHouse 使用 Apache Arrow 进行数据导入导出,以及直接查询 Arrow、ArrowStream、Parquet 和 ORC 格式的外部数据集。
- CloudQuery: 一种由 Apache Arrow 类型系统驱动的开源高性能 ELT 框架。
- Cylon: 一种开源高性能分布式数据处理库,可与现有的大数据和 AI/ML 框架无缝集成。Cylon 使用 Arrow 内存格式,并提供了 C++、Java 和 Python 的语言绑定。
- DACP: 数据访问与协作协议 (DACP) 是一种通信协议,旨在支持科学和分布式计算环境中的跨节点、跨进程数据访问。DACP 基于 Apache Arrow Flight 协议提供标准化的流式数据交互,并定义了一个统一的流式数据帧 (SDF) 模型,作为访问和处理结构化及非结构化数据的高性能抽象。
- Daft: 一种用于 AI 和多模态工作负载的高性能数据引擎,专为大规模处理图像、音频、视频和结构化数据而构建。Daft 使用 Apache Arrow 作为其内存中列式格式,并配备了用 Rust 编写的向量化执行引擎。它通过 Arrow 读取和写入 Parquet 文件,使用 Arrow Flight 进行分布式 shuffle,并支持在 Python 中创作自定义目录、函数和表(源和接收端)。
- Dask: 用于动态任务图并行和分布式执行的 Python 库。Dask 支持使用 pyarrow 访问 Parquet 文件。
- Data Preview: Data Preview 是一个 Visual Studio Code 扩展,用于查看文本和二进制数据文件。Data Preview 使用 Arrow JS API 加载、转换和保存 Arrow 数据文件及模式。
- delta-rs: 一个原生的 Delta Lake Rust 库,带有 Python 绑定。它可以与 Apache Arrow 集成,提高网络上的数据交换效率。
- Dremio: 一个自助式数据平台。Dremio 使用户能够轻松发现、管理、加速和共享来自任何源的数据。它包含一个基于 Apache Arrow 的分布式 SQL 执行引擎。Dremio 将来自任何来源(RDBMS、HDFS、S3、NoSQL)的数据读入 Arrow 缓冲区,并通过 ODBC、JDBC 和 REST 为 BI、Python、R 等提供快速的 SQL 访问(均由 Apache Arrow 提供支持)。
- Falcon: 一个具有协调视图的交互式数据探索工具。Falcon 使用 Arrow JavaScript 模块加载 Arrow 文件。由于 Arrow 不需要像基于文本的格式(如 CSV 和 JSON)那样进行解析,因此启动成本被显著最小化。
- FASTDATA.io: Plasma Engine(与 Arrow 的 Plasma 内存对象存储无关)利用 GPU 的大规模并行处理能力进行流和批处理。它支持将 Arrow 作为输入和输出,在内部使用 Arrow 以最大化性能,并可与现有的 Apache Spark™ API 一起使用。
- Fletcher: Fletcher 是一个框架,可以将 FPGA 加速器与使用 Apache Arrow 内存格式的工具和框架集成。通过一组 Arrow 模式,Fletcher 生成高度优化的硬件结构,允许加速器内核通过易于使用的接口以系统带宽读写 RecordBatches。
- FlexPro: 一种用于测量数据分析和呈现的工具。FlexPro 使用 Apache Arrow 支持读写 Parquet 文件。
- GeoMesa: 一套工具,支持在分布式计算系统上进行大规模地理空间查询和分析。GeoMesa 支持以 Arrow IPC 格式输出查询结果,这些结果随后可用于浏览器内可视化和/或进一步的分析。
- GOAI: 开放式 GPU 加速分析倡议,旨在实现跨 GPU 工具和供应商的 Arrow 支持分析。
- graphique 用于 arrow 表和 parquet 数据集的 GraphQL 服务。查询 API 的模式是自动派生的。
- Graphistry: 超级视觉调查平台,供安全、反欺诈及相关调查团队使用。Graphistry 团队在其 NodeJS GPU 后端和客户端库中使用 Arrow,并且是 GOAI 和 Arrow[JS] 的早期贡献成员,致力于将这些技术引入企业。
- GreptimeDB: GreptimeDB 是一个开源的时序数据库,特别关注可扩展性、分析能力和效率。它专为云时代的基础设施而设计,用户可受益于其弹性和商品化存储。GreptimeDB 使用 Apache Arrow 作为内存模型,使用 Apache Parquet 作为持久化文件格式。
- HASH: HASH 是一个开源核心平台,用于构建、运行模拟并从中学习,配有内置的浏览器 IDE。HASH Engine 使用 Apache Arrow 为计算过程中的模拟状态数据存储提供支持,实现零拷贝数据。
- Hugging Face Datasets: 一个机器学习数据集库和中心,用于访问、处理和共享音频、计算机视觉、自然语言处理和表格任务的数据集。Dataset 对象是 Arrow 表的包装器,并从磁盘进行内存映射,以支持机器学习工作流程的核外并行处理。
- iceburst: 一个直接构建在 Amazon S3 之上的实时监控和安全数据湖。我们的方法很简单:以 Iceberg 表格式将 OpenTelemetry 数据作为 Parquet 文件摄取到 S3 存储桶中,并使用 DuckDB 进行毫秒级检索查询,且零出口成本。Parquet 在内存中转换为 Arrow 格式,提高了速度和效率。
- InAccel: 一个利用 FPGA 即服务 (FPGAs-as-a-service) 的机器学习加速框架。InAccel 支持以 Apache Arrow 为后端的数据帧,作为我们实现的机器学习算法的输入。通过实现共享内存通信模式,可以利用单次 DMA 操作从 FPGA 访问这些数据帧。
- InfluxDB IOx: InfluxDB IOx 是一个用 Rust 编写的开源时序数据库。它是 InfluxDB 的未来核心,支持行业标准的 SQL、InfluxQL 和 Flux。IOx 使用 Apache Arrow 作为其内存格式,使用 Apache Parquet 作为其持久化格式,并使用 Apache Arrow Flight 进行 RPC。
- IOMETE: IOMETE 是一个用于 AI 和分析的主权数据湖仓,在其基于 Apache Spark 的查询引擎中嵌入了 Arrow Flight SQL 服务器,将结果转换为 Arrow 列式格式并通过 Flight RPC 协议流式传输给客户端。IOMETE 通过标准的 JDBC 和 ADBC 接口为 BI 工具和应用程序提供高吞吐量的 SQL 访问。
- Kaskada: 一个用 Rust 编写并构建在 Apache Arrow 之上的开源事件处理引擎。
- libgdf: 一个基于 CUDA 的分析函数和针对结构化数据的 GPU IPC 支持的 C 库。它使用 Arrow IPC 格式,并在其分析函数中以 Arrow 内存布局为目标。这项工作是 GPU 开放分析倡议的一部分。
- MATLAB: 面向工程师和科学家的数值计算环境。MATLAB 使用 Apache Arrow 支持读取和写入 Parquet 和 Feather 文件。
- OmniSci (原名 MapD): 设计用于在 GPU 和 CPU 上运行的内存中列式 SQL 引擎。OmniSci 支持通过 CUDA IPC 句柄使用 Arrow 进行数据摄取和数据交换。这项工作是 GPU 开放分析倡议的一部分。
- OpenObserve: PB 级日志、指标和追踪可视化可观测性工具。高度注重可用性和简洁性。支持 opentelemetry 和许多现有的日志及指标转发器。
- pandas: Python 程序员的数据分析工具包。pandas 支持使用 pyarrow 读取和写入 Parquet 文件。几位 pandas 核心开发人员也是 Apache Arrow 的贡献者。
- pantab: 允许主流数据帧库(如 pandas、polars、pyarrow 等)与 Tableau 的 Hyper 数据库之间进行高性能读写。pantab 使用 nanoarrow 和 Arrow PyCapsule 接口使该交换过程无缝化。
- Parseable: 为规模和可用性构建的日志分析平台。从任何地方摄取日志并使用 Parseable 统一日志。Parseable 使用 Arrow 作为日志数据摄取的中间内存数据格式。
- Perspective: Perspective 是一个 JavaScript 流式数据可视化引擎,用于完全在浏览器中构建实时且用户可配置的分析。
- Petastorm: Petastorm 支持直接从 Apache Parquet 格式的数据集中对深度学习模型进行单机或分布式训练和评估。Petastorm 支持流行的基于 Python 的机器学习 (ML) 框架,如 Tensorflow、Pytorch 和 PySpark。它也可以在纯 Python 代码中使用。
- Polars: Polars 是一个速度极快的数据帧库和查询引擎,旨在高效利用现代硬件(例如多线程、SIMD 向量化、隐藏内存延迟)。Polars 构建于 Apache Arrow 之上,并使用其列式内存、计算内核和多种 IO 实用程序。Polars 用 Rust 编写,可在 Rust 和 Python 中使用。
- protarrow: 一个用于在 Apache Arrow 和 Protocol Buffers 之间进行转换的 Python 库。
- Quilt Data: Quilt 是一个数据包管理器,旨在让管理数据像管理代码一样简单。它通过 pyarrow 支持 Parquet 格式以进行数据访问。
- Ray: 一个灵活、高性能的分布式执行框架,专注于机器学习和 AI 应用程序。使用 Arrow 高效存储包含大型数值数组的 Python 数据结构。多个进程可以使用源自 Ray 且现在作为 Arrow 一部分的 Plasma 共享内存对象存储,通过零拷贝方式访问数据。
- Red Data Tools: 一个为 Ruby 提供数据处理工具的项目。它提供了 Red Arrow,这是基于 Apache Arrow GLib 的 Apache Arrow Ruby 绑定。Red Arrow 是其核心库。它还提供了许多 Ruby 库,用于将现有的 Ruby 库与 Apache Arrow 集成。他们使用 Red Arrow。
- SciDB: Paradigm4 的 SciDB 是一种可扩展的科学数据库管理系统,可帮助研究人员在一个分析平台中集成和分析各种多维、高分辨率数据,如基因组、临床、图像、传感器、环境和物联网数据。SciDB 流和加速 IO 工具均由 Apache Arrow 提供支持。
- Spice.ai OSS: 一个用 Rust 构建的统一 SQL 查询接口和便携式运行时,用于在本地物化、加速和查询来自任何数据库、数据仓库或数据湖的数据集。Spice.ai OSS 在内部将 Arrow 与 DataFusion 一起使用,并支持 Flight 和 Flight SQL 连接。
- Squey: Squey 是一款开源可视化软件,旨在交互式探索和理解大量列式数据。它使用 Apache Arrow C++ 库(带有 Arrow Compute)来导入和导出 Parquet 文件。
- TileDB: TileDB 是一个开源的、云优化的引擎,用于存储和访问密集/稀疏的多维数组和数据帧。它是一个可嵌入的 C++ 库,适用于 Linux、macOS 和 Windows,并附带了众多的 API 和集成。我们在基因组学的 TileDB-VCF 项目中使用 Arrow,以在从 Spark 和 Dask 访问 TileDB 数据时实现零拷贝。
- Turbodbc: 通过开放数据库连接 (ODBC) 接口访问关系数据库的 Python 模块。除了 Python 数据库 API 规范 2.0 之外,它还提供了返回 Arrow 表和 RecordBatches 的能力。
- UKV: 开放式 NoSQL 二进制数据库接口,支持 LevelDB、RocksDB、UDisk 和内存键值存储。它扩展了其功能以支持文档集合、图和向量搜索,类似于 RedisJSON、RedisGraph 和 RediSearch,并在此之上引入了熟悉的结构化绑定,模仿了 pandas 和 NetworkX 等工具。所有 UKV 接口都与 Apache Arrow 列式格式兼容,这最大限度地减少了在不同语言运行时之间传递数据时的副本。UKV 还使用 Apache Arrow Flight RPC 进行客户端-服务器通信。
- Vaex: 用于 Python 的核外 (Out-of-Core) 混合 Apache Arrow/NumPy 数据帧,用于以每秒十亿行的速度对大型表格数据进行机器学习、可视化和探索。
- VAST: 用于数据驱动安全调查的网络遥测引擎。VAST 使用 Arrow 作为标准数据平面,为下游分析提供高带宽输出路径。这使得通过 pyarrow 和其他可用绑定访问安全数据变得简单而高效。