You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Overwatch获取Databricks作业的内存/vCore资源使用指标

Databricks作业内存、vCore资源信息获取方案

原有查询的问题

你当前直接查询overwatch_etl.spark_events_bronze表的方式无法拿到完整的资源指标:该表是Overwatch采集的原始Spark事件落盘表,字段零散未做维度关联,仅能零散捕获到单Executor上报的MaximumMemory字段,没有作业维度聚合的vCore、总内存分配/使用数据。

正确查询方式

Overwatch已经在silver、gold层做了事件清洗、维度关联和指标聚合,直接查询对应主题表即可,默认表前缀为overwatch_etl,如果部署时自定义过schema,替换成对应名称即可:

  • 查作业额定分配资源(即作业运行配置的vCore、内存规格):使用job_run_gold表,该表已经关联了作业运行绑定的集群规格,直接取聚合好的字段即可
SELECT
  job_id,
  run_id,
  job_name,
  cluster_id,
  -- 集群单节点vCore数、单节点内存(单位MB)
  node_vcore_count,
  node_memory_mb,
  -- 作业总分配vCore、Executor总内存、Driver内存
  total_executor_cores AS allocated_total_vcores,
  total_executor_memory_mb AS allocated_total_executor_memory_mb,
  driver_memory_mb AS allocated_driver_memory_mb,
  run_start_time,
  run_end_time
FROM overwatch_etl.job_run_gold
WHERE job_id IS NOT NULL
LIMIT 100
  • 查作业实际运行资源使用率(即运行过程中真实消耗的vCore、内存):使用cluster_resource_consumption_silver表,和作业运行表按集群ID、时间窗口关联即可拿到对应作业的时序资源消耗数据
SELECT
  j.job_id,
  j.run_id,
  j.job_name,
  c.cluster_id,
  date_trunc('minute', c.event_time) AS metric_time,
  -- 时间窗口内vCore使用均值、峰值
  AVG(c.vcore_used) AS avg_used_vcores,
  MAX(c.vcore_used) AS peak_used_vcores,
  -- 时间窗口内内存使用均值、峰值(单位MB)
  AVG(c.memory_used_mb) AS avg_used_memory_mb,
  MAX(c.memory_used_mb) AS peak_used_memory_mb
FROM overwatch_etl.cluster_resource_consumption_silver c
INNER JOIN overwatch_etl.job_run_gold j
  ON c.cluster_id = j.cluster_id
  AND c.event_time BETWEEN j.run_start_time AND j.run_end_time
WHERE j.job_id IS NOT NULL
GROUP BY 1,2,3,4,5
ORDER BY metric_time DESC
LIMIT 1000

注意:如果坚持要从bronze层原始表计算,需要自行关联SparkListenerJobStart、SparkListenerExecutorAdded、SparkListenerClusterSpec等多类事件,手动拼接作业和集群资源的映射关系,逻辑冗余且容易出现匹配错误,不推荐使用。

内容的提问来源于stack exchange,提问作者BruceWayne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 04:30:52