网站 | API 文档 |聊天
DataFusion 是一个用 Rust 编写的可扩展查询引擎,使用 Apache Arrow 作为其内存格式。
该包为开发人员提供库和二进制文件,以构建快速且功能丰富的数据库和分析系统,并针对特定工作负载进行定制。请参阅用例示例。以下相关子项目针对最终用户:
“开箱即用”的 DataFusion 提供 [SQL] 和 [ Dataframe
] API、卓越的性能、对 CSV、Parquet、JSON 和 Avro 的内置支持、广泛的定制以及出色的社区。
DataFusion 具有完整的查询规划器、列式、流式、多线程、矢量化执行引擎和分区数据源。您几乎可以在所有方面自定义 DataFusion,包括附加数据源、查询语言、函数、自定义运算符等。有关更多详细信息,请参阅架构部分。
以下是一些重要信息的链接
DataFusion 非常适合构建特定领域的查询引擎、新数据库平台和数据管道、查询语言等项目。它可以让您从完全正常工作的引擎快速启动,然后根据您的使用情况自定义这些功能。单击此处查看已知用户列表。
请参阅贡献者指南和交流页面以获取更多信息。
这个箱子有几个功能,可以在Cargo.toml
中指定。
默认功能:
nested_expressions
:用于使用嵌套类型函数的函数,例如array_to_string
compression
:读取使用xz2
、 bzip2
、 flate2
和zstd
压缩的文件crypto_expressions
:加密函数,例如md5
和sha256
datetime_expressions
:日期和时间函数,例如to_timestamp
encoding_expressions
: encode
和decode
函数parquet
:支持读取 Apache Parquet 格式regex_expressions
:正则表达式函数,例如regexp_match
unicode_expressions
:包括 unicode 感知函数,例如character_length
unparser
:支持将 LogicalPlan 反转回 SQL可选功能:
avro
:支持读取 Apache Avro 格式backtrace
:在错误消息中包含回溯信息pyarrow
:PyArrow 和 DataFusion 类型之间的转换serde
: 启用 arrow-schema 的serde
功能Rust 工具链版本在 Rust 版本中进行跟踪,并遵循语义版本控制。 Rust 工具链版本可以通过版本字符串(如1.80.0
,或更普遍的major.minor.patch
来标识。
DataFusion 支持最近发布的 4 个稳定 Rust 次要版本以及过去 4 个月内发布的任何此类版本。
例如,给定版本1.78.0
、 1.79.0
、 1.80.0
、 1.80.1
和1.81.0
DataFusion 将支持 1.78.0 ,这是最新的1.81
之前的 3 个次要版本。
注意:如果针对当前 MSRV 发布了 Rust 修补程序,则 MSRV 将更新到特定的次要版本,其中包括其他策略之前的所有适用修补程序。
DataFusion 使用 MSRV CI 检查强制执行 MSRV 策略
Apache DataFusion 中的公共方法可能会作为 API 生命周期的一部分而不断发展。不推荐使用的方法将按照政策逐步淘汰,确保API稳定健康。