查看作业性能指标
查看作业性能指标,包括Spark执行计划、性能统计(执行时间、内存占用、数据量)、算子指标及任务健康度等信息,助您快速理解执行流程与性能表现。
约束与限制
进入过运行状态的SparkSQL作业都支持查看作业性能指标。
操作步骤
- 登录AI DataLake管理控制台。
- 进入到SparkSQL作业查看性能入口页面。
- 从作业运行历史页面进入
- 在“作业开发”>“作业运行历史”页面,单击“批处理引擎Spark”,切换端点类型为SparkSQL。
- 单击目标作业“操作”列下“更多”>“查询分析”。
- 从引擎端点页面进入
- 在“引擎端点”>“批处理引擎Spark”页面。
- 在搜索框中选择类型后,选择SparkSQL。
- 单击目标端点名称。
- 在“作业运行历史”页签,单击目标作业“操作”列下“更多”>“查询分析”。
- 从作业运行历史页面进入
- 通过以下任意一种方式查看指标信息。
query
| 指标字段 | 含义 |
|---|---|
| query.id | 查询唯一标识。 |
| query.status | 查询状态:RUNNING / FINISHED / FAILED。 |
| query.queryText | SQL查询文本。 |
| query.queryStartTimeMs | 查询开始时间(毫秒时间戳)。 |
| query.queryEndTimeMs | 查询结束时间(毫秒时间戳)。 |
| query.user | 提交查询的用户信息。 |
| query.executedAsUser | 执行查询的用户信息。 |
| query.errorMessage | 错误信息(查询失败时)。 |
| query.isFinal | 查询是否已结束(最终状态)。 |
| query.metrics | 查询级别指标数据。 |
| query.statementType | SQL语句类型。 |
| query.user.id | 用户ID。 |
| query.user.name | 用户名。 |
| query.executedAsUser.id | 执行用户ID。 |
| query.executedAsUser.name | 执行用户名。 |
query.metrics
| 指标字段 | 含义 |
|---|---|
| query.metrics.totalTimeMs | 查询总耗时(毫秒)。 |
| query.metrics.compilationTimeMs | 编译总耗时(毫秒)= 各phase durationMs之和。 |
| query.metrics.executionTimeMs | 执行耗时(毫秒)= totalTimeMs - compilationTimeMs。 |
| query.metrics.metadataTimeMs | 元数据操作总耗时(毫秒)。 |
| query.metrics.metadataOperationInfo | 元数据操作详情列表。 |
| query.metrics.fileListTimeMs | 文件列表获取总耗时(毫秒)。 |
| query.metrics.fileListInfo | 文件列表获取详情。 |
| query.metrics.liquidClusteringMetrics | Liquid Clustering指标(Join Key使用统计)。 |
| query.metrics.phases | 查询编译各阶段信息。 |
| query.metrics.rules | 最耗时Top10优化规则。 |
| query.metrics.metadataOperationInfo[*].operationName | 元数据操作名称。 |
| query.metrics.metadataOperationInfo[*].callTimes | 调用次数。 |
| query.metrics.metadataOperationInfo[*].minTime | 最小耗时(毫秒)。 |
| query.metrics.metadataOperationInfo[*].medTime | 中位数耗时(毫秒)。 |
| query.metrics.metadataOperationInfo[*].maxTime | 最大耗时(毫秒)。 |
| query.metrics.fileListInfo[*].rootPathSize | 根路径大小。 |
| query.metrics.fileListInfo[*].outputSize | 输出大小。 |
| query.metrics.fileListInfo[*].fileListTime | 文件列表获取耗时。 |
| query.metrics.liquidClusteringMetrics[*].tableQualifiedName | 表全限定名。 |
| query.metrics.liquidClusteringMetrics[*].joinMetrics[*].key | Join Key列名。 |
| query.metrics.liquidClusteringMetrics[*].joinMetrics[*].usageCounter | Join Key使用次数。 |
| query.metrics.phases[*].phaseName | 阶段名称(parsing/analysis/optimization/planning)。 |
| query.metrics.phases[*].startTimeMs | 阶段开始时间(毫秒)。 |
| query.metrics.phases[*].endTimeMs | 阶段结束时间(毫秒)。 |
| query.metrics.phases[*].durationMs | 阶段持续时间(毫秒)。 |
| query.metrics.rules[*].ruleName | 优化规则名称。 |
| query.metrics.rules[*].totalTimeNs | 规则总耗时(纳秒)。 |
| query.metrics.rules[*].numInvocations | 规则调用次数。 |
| query.metrics.rules[*].numEffectiveInvocations | 规则有效调用次数。 |
graphs
| 指标字段 | 含义 |
|---|---|
| graphs[*].nodes | 执行计划节点列表。 |
| graphs[*].edges | 执行计划边列表。 |
| graphs[*].stageData | Stage级别数据。 |
| graphs[*].executionId | 执行ID。 |
| graphs[*].timeSubmittedMs | 提交时间(毫秒时间戳)。 |
| graphs[*].timeCompletedMs | 完成时间(毫秒时间戳)。 |
| graphs[*].displayInfo | 汇总显示信息。 |
| graphs[*].nodes[*].id | 节点ID。 |
| graphs[*].nodes[*].name | 节点名称(如Scan parquet、HashAggregate)。 |
| graphs[*].nodes[*].tag | 节点标签。 |
| graphs[*].nodes[*].metadata | 节点元数据。 |
| graphs[*].nodes[*].metrics | 节点指标列表。 |
| graphs[*].nodes[*].keyMetrics | 关键指标(行数/耗时/峰值内存)。 |
| graphs[*].nodes[*].hidden | 是否在UI中隐藏。 |
| graphs[*].nodes[*].stageLinks | 关联的Stage ID列表。 |
| graphs[*].nodes[*].subgraphParent | 所属子图的父节点ID。 |
| graphs[*].nodes[*].keyMetrics.rowsNum | 输出行数。 |
| graphs[*].nodes[*].keyMetrics.durationMs | 耗时(毫秒)。 |
| graphs[*].nodes[*].keyMetrics.peakMemoryBytes | 峰值内存字节数。 |
| graphs[*].nodes[*].metrics[*].label | 指标显示标签。 |
| graphs[*].nodes[*].metrics[*].key | 指标键。 |
| graphs[*].nodes[*].metrics[*].metricType | 指标类型(SIZE_METRIC_BYTES/TIMING_METRIC_NS/TIMING_METRIC_MS/AVERAGE_METRIC/SUM_METRIC/UNKNOWN_TYPE)。 |
| graphs[*].nodes[*].metrics[*].value | 指标值(统一转为Long)。 |
| graphs[*].nodes[*].metrics[*].hidden | 是否隐藏。 |
| graphs[*].nodes[*].metadata[*].key | 元数据键(OUTPUT/GROUPING_EXPRESSIONS/AGGREGATE_EXPRESSIONS/PARTITIONING_TYPE/SHUFFLE_ATTRIBUTES/SCAN_DATABASE/SCAN_TABLE/SCAN_IDENTIFIER)。 |
| graphs[*].nodes[*].metadata[*].label | 元数据标签。 |
| graphs[*].nodes[*].metadata[*].value | 元数据值。 |
| graphs[*].nodes[*].metadata[*].values | 元数据值列表。 |
| graphs[*].nodes[*].metadata[*].metaValues[*].value | 元数据子项值。 |
| graphs[*].edges[*].fromId | 起始节点ID。 |
| graphs[*].edges[*].toId | 目标节点ID。 |