超快的查询执行引擎使用 Apache Spark 语言,并以 Arrow-DataFusion 为核心。
Apache Spark 的 Blaze 加速器利用本机矢量化执行来加速查询处理。它结合了Apache Arrow-DataFusion库的强大功能和 Spark 分布式计算框架的规模。
Blaze 从 Spark 获取一个完全优化的物理计划,将其映射到 DataFusion 的执行计划中,并在 Spark 执行器中执行本机计划计算。
Blaze 由以下高级组件组成:
- Blaze Spark 扩展:将整个加速器连接到 Spark 执行生命周期中。
- Native Operators:定义每个 SparkPlan 如何映射到其本机执行对应项。
- JNI 网关:通过 JNI 边界传递数据和控制。
- Plan SerDe:使用 protobuf 对 DataFusion 计划进行序列化和反序列化。
- Columnarized Shuffle:以 Arrow-IPC 格式组织的 shuffle 数据文件。
基于 DataFusion 固有的明确定义的可扩展性,Blaze 可以轻松扩展以支持:
- 各种对象存储。
- 运营商。
- 简单和聚合函数。
- 文件格式。