为查询启用扫描统计信息
重要
AKS 上的 Azure HDInsight 已于 2025 年 1 月 31 日停用。 了解更多此公告的详细信息。
需要将工作负荷迁移到 Microsoft Fabric 或等效的 Azure 产品,以避免工作负荷突然终止。
重要
此功能目前以预览版提供。 Microsoft Azure 预览版补充使用条款 包括适用于 beta 版、预览版或尚未正式发布一般可用性的 Azure 功能的更多法律条款。 有关此特定预览的信息,请参阅 AKS 上的 Azure HDInsight 预览信息。 有关问题或功能建议,请在 AskHDInsight 上提交请求,并附上详细信息。关注我们以获取 Azure HDInsight 社区的更多更新。
通常,数据团队需要调查性能或优化查询以提高资源利用率或满足业务需求。
AKS 上的 Trino for HDInsight 中添加了一项新功能,允许用户捕获任何连接器的扫描统计信息。 此功能提供的查询性能分析比 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。 这样,用户就可以控制他们希望包含在自定义连接器中的关于商店的信息。
扫描统计信息用户界面
可以在查询详细信息页中找到名为“Scan Stats
”的新选项卡,该选项卡直观显示此功能生成的统计信息,并提供有关每个工作单元拆分粒度性能的见解。 该页面允许用户查看 Trino 查询的执行概况,其中包含随时间变化的并发读取和吞吐量等信息。
以下示例展示了启用扫描统计信息后的查询页面。
使用Microsoft查询记录器**
Microsoft 查询记录器 内置了对此功能的支持。 使用此功能启用时,查询记录器插件将填充一个名为 operatorstats
的表以及查询事件表,此表非规范化,以便每个运算符实例为每个查询一行。