用户指南
常见问题
登录后可跨设备保存划线和私人笔记登录
常见问题
Apache Arrow、DataFusion 和 Ballista 之间是什么关系?
Apache Arrow 是一个为列式数据提供标准化内存表示的库。它还提供了用于对该数据执行常见操作的“内核(kernels)”。
DataFusion 是一个使用 Apache Arrow 内存模型和计算内核在进程内执行查询的库。它被设计为在单个进程中运行,通过线程实现并行查询执行。
Ballista 是一个构建在 DataFusion 之上的分布式计算平台。
DataFusion 与 XYZ 相比如何?
与类似系统相比,DataFusion 通常具有以下特点:
- 面向开发者,而非最终用户 / 数据科学家。
- 设计为可嵌入式使用,而非一个完整的基于文件的 SQL 系统。
- 由 Apache 软件基金会(Apache Software Foundation)的流程治理,而非由单个公司或个人掌控。
- 使用
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 不同的是,它面向最终用户,而非其他数据库系统的开发者。
评论
登录后参与评论
正在加载评论…
KnowForge