结构化流中的自适应查询执行

结构化流中的自适应查询执行

💡 原文英文,约900词,阅读约需4分钟。
📝

内容提要

Databricks Runtime的AQE是一种性能特性,可以在查询执行期间使用运行时统计信息不断重新优化批处理查询。从Databricks Runtime 13.1开始,使用ForeachBatch Sink的实时流查询也将利用AQE进行动态重新优化。AQE可以解决静态查询计划和估计统计数据的限制,通过利用ForeachBatch Sink的运行时统计信息进行动态优化。AQE在无状态操作符上的效果最好,可以应用于ForeachBatch可调用函数中的微批DataFrame。AQE在流中的应用可以提高Delta MERGE等常见流式用例的性能。

🎯

关键要点

  • Databricks Runtime中的自适应查询执行(AQE)是一种性能特性,可以在查询执行期间使用运行时统计信息不断重新优化批处理查询。

  • 从Databricks Runtime 13.1开始,使用ForeachBatch Sink的实时流查询也将利用AQE进行动态重新优化。

  • 静态查询计划和估计统计数据的限制导致流查询性能下降,AQE可以解决这些问题。

  • AQE利用ForeachBatch Sink的运行时统计信息进行动态优化,适用于无状态操作符。

  • AQE在流中的应用可以提高Delta MERGE等常见流式用例的性能。

  • AQE的动态优化在每个微批次上独立触发,适应数据特征的变化。

  • 在Photon启用的集群中,AQE可以为无状态查询提供更广泛的逻辑和物理优化。

  • AQE在ForeachBatch Sink内的转换应用效果最佳,推荐将连接操作移入ForeachBatch函数中以提高AQE覆盖率。

  • AQE可以显著提高无状态基准查询的性能,速度提升范围为1.2倍到16倍。

  • 在Runtime 13.1中,AQE将在非Photon集群中默认启用,Photon集群将在Runtime 13.2中启用AQE。

➡️

继续阅读