使用“Apache Arrow”的项目和产品名称
创建与 Apache Arrow 一起使用的产品和项目以及相关营销材料的组织,应注意尊重“Apache Arrow”及其徽标的商标。有关 ASF 商标正确使用的全面和权威指导,请参阅 ASF 商标指南及相关的常见问题解答。
完全不包含“Apache Arrow”的名称与 Apache Arrow 项目没有潜在的商标问题。我们推荐这样做。
类似“Apache Arrow BigCoProduct”的名称是不允许的,通常包含“Apache Arrow”的名称也是如此。然而,上述链接描述了一些例外情况,例如“BigCoProduct, powered by Apache Arrow”或“BigCoProduct for Apache Arrow”等名称。
创建类似“arrow-foo”的软件标识符(Maven 坐标、模块名称等)是常见的做法。这些是允许的。在描述中对商标的指示性使用也总是被允许的,例如“BigCoProduct 是一个用于 Apache Arrow 的小部件”。
希望包含 Apache Arrow 徽标的项目和文档应使用官方徽标,并遵守视觉识别页面上列出的指南。
由 Apache Arrow 支持的项目
要将您自己添加到列表中,请提交一个拉取请求,添加您的组织名称、URL、您正在使用的 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 库的强大功能扩展到 AWS,连接 DataFrame 和 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 的语言绑定。
- 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 引擎(与 Arrow 的 Plasma 内存对象存储无关)利用 GPU 的大规模并行处理能力进行流式和批量处理。它支持 Arrow 作为输入和输出,内部使用 Arrow 以最大化性能,并可与现有的 Apache Spark™ API 一起使用。
- Fletcher: Fletcher 是一个框架,可以将 FPGA 加速器与使用 Apache Arrow 内存格式的工具和框架集成。Fletcher 可以根据一组 Arrow 模式生成高度优化的硬件结构,使加速器内核能够通过易于使用的接口以系统带宽读取和写入 RecordBatch。
- 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 引擎使用 Apache Arrow 作为计算过程中模拟状态的数据存储,从而实现零拷贝数据。
- Hugging Face Datasets: 一个机器学习数据集库和中心,用于访问、处理和共享音频、计算机视觉、自然语言处理和表格任务的数据集。Dataset 对象是 Arrow 表的包装器,并从磁盘进行内存映射,以支持机器学习工作流程的核外并行处理。
- iceburst: 一个直接构建在 Amazon S3 之上的实时数据湖,用于监控和安全。我们的方法很简单:将 OpenTelemetry 数据以 Parquet 文件和 Iceberg 表格式摄取到 S3 存储桶中,并使用 DuckDB 以毫秒级检索速度和零出口成本查询它们。Parquet 在内存中转换为 Arrow 格式,从而提高了速度和效率。
- InAccel: 一种利用“FPGA即服务”的机器学习加速框架。InAccel 支持由 Apache Arrow 支持的数据帧,作为我们实现的机器学习算法的输入。这些数据帧可以通过实现共享内存通信方案,以单个 DMA 操作从 FPGA 访问。
- InfluxDB IOx: InfluxDB IOx 是一个用 Rust 编写的开源时序数据库。它是 InfluxDB 未来的核心;支持行业标准的 SQL、InfluxQL 和 Flux。IOx 使用 Apache Arrow 作为其内存格式,Apache Parquet 作为其持久化格式,并使用 Apache Arrow Flight 进行 RPC 通信。
- 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 是一个速度极快的 DataFrame 库和查询引擎,旨在高效利用现代硬件(例如多线程、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 提供数据处理工具的项目。它提供了基于 Apache Arrow GLib 的 Apache Arrow 的 Ruby 绑定 Red Arrow。Red Arrow 是其核心库。它还提供了许多 Ruby 库,用于将现有的 Ruby 库与 Apache Arrow 集成。它们都使用 Red Arrow。
- SciDB: Paradigm4 的 SciDB 是一个可扩展的科学数据库管理系统,帮助研究人员在一个分析平台中集成和分析多样化、多维、高分辨率的数据——如基因组、临床、图像、传感器、环境和物联网数据。SciDB 流式处理和 accelerated_io_tools 由 Apache Arrow 提供支持。
- Spice.ai OSS: 一个统一的 SQL 查询接口和可移植的运行时,用 Rust 构建,用于在本地物化、加速和查询来自任何数据库、数据仓库或数据湖的数据集。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 的核外混合 Apache Arrow/NumPy DataFrame,用于机器学习、可视化和探索每秒十亿行的大型表格数据。
- VAST: 一种用于数据驱动安全调查的网络遥测引擎。VAST 使用 Arrow 作为标准化的数据平面,为下游分析提供高带宽的输出路径。这使得通过 pyarrow 和其他可用绑定访问安全数据变得简单高效。