用户指南

常见问题

师成师成· 更新于 2026-09-28· 阅读 4 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

常见问题

Apache Arrow、DataFusion 和 Ballista 之间是什么关系?

Apache Arrow 是一个为列式数据提供标准化内存表示的库。它还提供了用于对该数据执行常见操作的“内核(kernels)”。

DataFusion 是一个使用 Apache Arrow 内存模型和计算内核在进程内执行查询的库。它被设计为在单个进程中运行,通过线程实现并行查询执行。

Ballista 是一个构建在 DataFusion 之上的分布式计算平台。

DataFusion 与 XYZ 相比如何?

与类似系统相比,DataFusion 通常具有以下特点:

  1. 面向开发者,而非最终用户 / 数据科学家。
  2. 设计为可嵌入式使用,而非一个完整的基于文件的 SQL 系统。
  3. 由 Apache 软件基金会(Apache Software Foundation)的流程治理,而非由单个公司或个人掌控。
  4. 使用 Rust 实现,而非 C/C++。

以下是与类似项目的对比,可以帮助你了解 DataFusion 在何种情况下适合或不适合你的需求:

  • DuckDB 是一个开源的进程内分析型数据库。与 DataFusion 一样,它支持非常快速的执行,既可以从其自定义文件格式读取,也可以直接从 parquet 文件读取。与 DataFusion 不同的是,它使用 C/C++ 编写,而且主要由用户直接作为无服务器数据库和查询系统使用,而不是作为构建此类数据库系统的库。
  • Polars:Polars 是撰写本文时最快的 DataFrame 库之一。与 DataFusion 一样,它也使用 Rust 编写并采用 Apache Arrow 内存模型,但与 DataFusion 不同的是,它没有设计那么多扩展点。
  • Facebook Velox 是一个执行引擎。与 DataFusion 一样,Velox 旨在为构建类数据库系统提供可复用的基础。与 DataFusion 不同的是,它使用 C/C++ 编写,并且不包含 SQL 前端或规划 / 优化框架。
  • Databend 是一个完整的数据库系统。与 DataFusion 一样,它也使用 Rust 编写并利用 Apache Arrow 内存模型,但与 DataFusion 不同的是,它面向最终用户,而非其他数据库系统的开发者。

评论

登录后参与评论

正在加载评论…