Apache DataFusion
Apache DataFusion 是一个非常快速、可扩展的查询引擎,用于使用 Apache Arrow 内存格式在 Rust 中构建高质量的数据中心系统。Python 绑定也可用。DataFusion 提供 SQL 和 DataFrame API,出色的性能,内置支持 CSV、Parquet、JSON 和 Avro,广泛的自定义选项,以及一个优秀的社区。
以下是一些重要信息的链接:
你可以用这个 crate 做什么?
DataFusion 非常适合构建特定领域的查询引擎、新的数据库平台和数据管道、查询语言等项目。它让你可以从一个完全可用的引擎快速开始,然后自定义适合你用例的特定功能。点击这里查看已知用户列表。
为 DataFusion 做贡献
Crate 功能
这个 crate 有几个可以在你的 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 版本兼容性策略
DataFusion 的最低要求稳定 Rust 版本(MSRV)策略是在每个稳定 Rust 版本发布后支持 6 个月。这通常意味着支持最近 3 到 4 个稳定的 Rust 版本。
我们使用 MSRV CI 检查来强制执行这一策略。