你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
为查询启用扫描统计信息
注意
我们将于 2025 年 1 月 31 日停用 Azure HDInsight on AKS。 在 2025 年 1 月 31 日之前,你需要将工作负荷迁移到 Microsoft Fabric 或同等的 Azure 产品,以避免工作负荷突然终止。 订阅上的剩余群集会被停止并从主机中移除。
在停用日期之前,仅提供基本支持。
重要
此功能目前以预览版提供。 Microsoft Azure 预览版的补充使用条款包含适用于 beta 版、预览版或其他尚未正式发布的 Azure 功能的更多法律条款。 有关此特定预览版的信息,请参阅 Azure HDInsight on AKS 预览版信息。 如有疑问或功能建议,请在 AskHDInsight 上提交请求并附上详细信息,并在 Azure HDInsight Community 上关注我们以了解更多更新。
通常,数据团队需要调查性能或优化查询,以提高资源利用率或满足业务需求。
适用于 HDInsight on AKS 的 Trino 中添加了一项新功能,可让用户捕获任何连接器的扫描统计信息。 除了 Trino 生成的统计信息之外,使用此功能还可以更深入地了解查询性能配置文件。
可以使用会话属性 collect_raw_scan_statistics
,并执行以下 Trino 命令来启用此功能:
SET SESSION collect_raw_scan_statistics=true
启用后,查询中的源运算符(例如 TableScanOperator
、ScanFilterAndProject
等)将具有数据扫描的统计信息,粒度为管道中的每个运算符实例。
提示
当群集或查询不受 CPU 限制并且查询的读取性能需要调查时,扫描统计信息有助于识别瓶颈。 它还有助于从分层角度理解查询的执行配置文件。
注意
目前,由于生成数据的大小限制,每个工作线程捕获的拆分数量限制为 1000。 如果查询的每个工作线程的拆分数量超过此限制,则返回前 1000 个运行时间最长的拆分。
如何访问扫描统计信息
设置会话属性后,会话中的后续查询将开始从源运算符捕获可用的统计信息。 可以通过多种方式使用和分析为查询生成的扫描统计信息。
查询 Json
“查询详细信息”页上的“Json”选项卡提供查询的 JSON 表示形式,其中包括有关每个阶段、查询管道的统计信息。 设置会话属性后,json 会在 queryStats.operatorSummaries[*]
中包含一个名为 scanStats
的新字段。 数组包含每个运算符实例的一个对象。
以下示例演示了一个使用 hive connector
并启用扫描统计信息的查询的 json。
注意
扫描统计信息摘要包含由连接器填充的 splitInfo。 这样,用户就可以控制他们想要包含在自定义连接器中的商店信息。
扫描统计信息 UI
可以在“查询详细信息”页中找到一个名为 Scan Stats
的新选项卡,该选项卡可视化此功能生成的统计信息,并提供有关每个工作线程的 splitgrain 性能的见解。 该页允许用户查看 trino 查询的执行配置文件,其中包含不同时间的并发读取次数和吞吐量等信息。
以下示例显示了已启用扫描统计信息的查询的页面。
使用 Microsoft 查询记录器**
Microsoft 查询记录器为此功能提供内置支持。 启用此功能后,查询记录器插件会填充一个名为 operatorstats
的表以及查询事件表,该表是非规范化的,使每个运算符实例对于每个查询而言都是一行。