根据谷歌文档,这样我们就可以计算使用的槽数(平均)。
时隙数=total_slot_ms / TIMESTAMP_DIFF(end_time,start_time, MILLISECOND)
select job_id
,total_slot_ms / TIMESTAMP_DIFF(end_time,start_time,MILLISECOND) as num_slot
from `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
Run Code Online (Sandbox Code Playgroud)
或者如果您无权访问上表,则手动使用 BQ UI 执行详细信息。
Number of slot = Slot time consumed (convert in MILLISECOND)/Elapses time (convert in MILLISECOND)
Run Code Online (Sandbox Code Playgroud)
此信息确实在job.statistics.query.timeline中提供,该时间线构成 BigQuery 的 Jobs API 的一部分 ( https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs#resource )。当您获得此信息时,它会出现在如下数组中:
timeline:
[ '{"elapsedMs":"750","totalSlotMs":"2795","pendingUnits":"8","completedUnits":"66","activeUnits":"9"}',
'{"elapsedMs":"1252","totalSlotMs":"3617","pendingUnits":"1","completedUnits":"73","activeUnits":"1"}',
'{"elapsedMs":"2944","totalSlotMs":"5643","pendingUnits":"0","completedUnits":"78","activeUnits":"0"}' ],
Run Code Online (Sandbox Code Playgroud)
所以你能做什么取决于你的实际问题:
1)如果您的问题是“查询在其运行时间内使用的总槽数是多少?”,那么查看completedUnits的最终值
2)如果你的问题是“如何在查询过程中使用的插槽的运行时间?”,然后就可以平均建completedUnits在elapsedMs每个时间片。
| 归档时间: |
|
| 查看次数: |
5229 次 |
| 最近记录: |