使用 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 风格的数据框 API
- 原生支持Parquet、CSV、JSON和Avro文件。DataFusion可以通过API扩展文件格式。
- 支持S3和其他与S3兼容的API的对象存储服务。
DataFusion也拥有一个强大的路线图,计划在未来添加以下功能。
- 支持嵌套数据结构,如字段、列表和结构体。
- 对分组和聚合函数的查询优化。
- 能够在需要本地缓存的远程文件系统中读取数据。
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的开发。