Photon

重要

此功能目前以公共预览版提供。

Photon 是 Azure Databricks 原生的向量化查询引擎,直接与 Apache Spark API 兼容,因此可以处理现有的代码。 该引擎是使用 C++ 开发的,它利用了新式硬件,并使用最新的向量化查询处理技术基于 CPU 中的数据级和指令级并行度产生价值,可以增强实际数据和应用程序的性能 — 所有这些功能原生都在数据湖上实现。 Photon 是能够更快运行现有 SQL 和数据帧 API 调用,并降低每个工作负载总成本的高性能运行时的一部分。

Photon 激活取决于是使用 Azure Databricks 还是 Databricks SQL 终结点。

Azure Databricks 群集

若要访问 Azure Databricks 群集上的 Photon,必须在创建群集时,使用UI或 Api (群集 Api 2.0作业 API 2.1(使用语法) 指定)显式选择包含 Photon 的运行时 。 Photon 适用于运行 Databricks Runtime 8.3 和 Databricks Runtime 8.3 Photon 及更高版本的群集。

Photon 在驱动程序和工作器节点上支持有限的一组实例类型。 Photon 实例类型使用 DBU 的速率不同于运行非 Photon 运行时的同一实例类型。 有关 Photon 实例和 DBU 消耗的详细信息,请参阅 Azure Databricks 定价页

Databricks SQL 终结点

默认已在 Databricks SQL 终结点中启用 Photon。 可以通过单击侧栏中的 "终结点"图标SQL 终结点,选择终结点,然后检查 Photon 的值是否为On,来确认为SQL 终结点启用了 Photon。

优点

下面总结了 Photon 的优点:

  • 支持对 Delta 表和 Parquet 表执行 SQL 和等效的数据帧操作。
  • 预期可以加速需要处理大量数据 (100GB+) 并且包括聚合和联接的查询。
  • 从增量缓存重复访问数据时速度更快。
  • 对于包含大量列和大量小文件的表,扫描性能更可靠。
  • 使用 UPDATEDELETEMERGE INTOINSERTCREATE TABLE AS SELECT 更快地编写增量表和 Parquet 表,尤其是宽表(包含数百甚至数千列)。
  • 将排序合并联接替换成了哈希联接。

限制

  • 仅支持对增量表和 Parquet 表进行读取和写入操作。
  • 不支持窗口和排序运算符
  • 不支持 Spark 结构化流式处理。
  • 不支持 UDF。
  • (< 2 秒) (例如,针对少量数据的查询),则不需要提高运行时间较短的查询。

Photon 不支持的功能与 Databricks Runtime 的运行方式相同;这些功能没有性能优势。