Presto C++

注意:Presto C++ 处于积极开发中。参见 限制.

概述

Presto C++,有时被称为开发名称 Prestissimo,是 Presto 工作节点的替代品,它使用 C++ 编写,并基于 Velox 库。它使用 Proxygen C++ HTTP 框架实现了与 Java 工作节点相同的 RESTful 端点。由于与 Java 协调器和工作节点之间的通信仅使用 REST 端点,因此 Presto C++ 不使用 JNI,也不需要工作节点上的 JVM。

Presto C++ 的代码库位于 presto-native-execution.

动机和愿景

Presto 的目标是成为数据湖的顶级性能系统。为了实现这一目标,Presto 社区正在将 Presto 评估引擎从基于 Java 的原生实现迁移到使用 Velox 的 C++ 编写的全新实现。

通过将评估引擎迁移到库,目的是让 Presto 社区能够专注于更多功能,以及更好地与表格式和其他数据仓库系统集成。

支持的用例

Presto C++ 评估引擎仅支持特定的连接器。

  • 支持 Hive 连接器进行读写,包括 CTAS。

  • 仅支持读取 Iceberg 表。

  • Iceberg 连接器支持 V1 和 V2 表,包括包含删除文件的表。

  • TPCH 连接器,具有 tpch.naming=standard 目录属性。