使用 InfluxDB 的基础设施监控 | 现场演示
Apache DataFusion
无论您是刚开始入门还是准备优化,请确保首先掌握 DataFusion 的基本原理。
什么是 Apache DataFusion?
DataFusion 是一个内存查询计划、优化和执行框架。 DataFusion 创建于 2017 年,并于 2019 年捐赠给 Apache Arrow 项目。 DataFusion 使用 Rust 编写,并利用 Arrow 的内存数据模型来实现性能以及与其他项目的兼容性。
DataFusion 的长期目标是成为一个嵌入式查询引擎,可以与任何分析应用程序一起使用,同时提供 SQL 兼容性、Pandas 类型数据帧 API、通过 API 创建执行计划的能力,并在所有这些不同的 API 中提供一流的查询性能。
Apache DataFusion 功能
DataFusion 开箱即用地提供了许多功能,使其成为开发人员处理基于分析的应用程序的理想选择。以下是当前通过 DataFusion 提供的一些主要功能:支持多种 SQL 方言的 SQL 查询计划器
- Pandas 样式 DataFrame API
- 原生支持 Parquet、CSV、JSON 和 Avro 文件。 DataFusion 可以通过 API 扩展文件格式
- 支持 S3 等对象存储以及其他与 S3 兼容的 API 对象存储服务
DataFusion 也有强大的路线图,计划在未来添加以下功能
- 支持嵌套数据结构,如字段、列表和结构体
- 针对group by和aggregate函数的查询优化
- 能够从需要本地缓存的远程文件系统读取数据
Apache DataFusion 用例
DataFusion 采用模块化设计,这使其可以嵌入到更大的应用程序中,并可以扩展以适应应用程序的特定需求。以下是项目利用 DataFusion 的一些常用方法
- DataFusion 用作 SQL 查询计划器和优化器,可以映射到不同的数据库查询引擎,如 PostgreSQL 或 MySQL
- ETL 数据处理管道
- 对于希望向最终用户提供 DataFrame API 或 SQL 界面的分析工具
- 希望利用 Apache Arrow 生态系统的应用程序
Apache DataFusion 和 InfluxDB
InfluxDB 的最新存储引擎构建在 Apache Arrow 之上,并使用 Apache DataFusion 作为其基础查询引擎。这在 InfluxDB 中提供了原生 SQL 查询功能。 InfluxData 工程师积极为 Apache DataFusion 的开发做出贡献。