JOBS_TIMELINE_BY_USER 视图
INFORMATION_SCHEMA.JOBS_TIMELINE_BY_USER
视图包含当前项目中当前用户提交的作业的近乎实时 BigQuery 元数据(按时间片)。此视图包含当前正在运行的作业和已完成作业。
所需权限
如需查询 INFORMATION_SCHEMA.JOBS_TIMELINE_BY_USER
视图,您需要拥有项目的 bigquery.jobs.list
Identity and Access Management (IAM) 权限。以下每个预定义的 IAM 角色均可提供所需的权限:
- Project Viewer
- BigQuery User
如需详细了解 BigQuery 权限,请参阅使用 IAM 进行访问权限控制。
架构
当您查询 INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*
视图时,每个 BigQuery 作业的每秒执行都会有一行对应的查询结果。每个时间段均以 1 秒为间隔,且刚好持续 1 秒。
INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*
视图具有如下架构:
列名 | 数据类型 | 值 |
---|---|---|
period_start |
TIMESTAMP |
此时间段的开始时间。 |
period_slot_ms |
INTEGER |
此时间段内使用的槽毫秒数。 |
period_shuffle_ram_usage_ratio |
FLOAT |
选定时间段内的 shuffle 使用率。 |
project_id |
STRING |
(聚簇列)项目的 ID。 |
project_number |
INTEGER |
项目编号。 |
folder_numbers |
REPEATED INTEGER |
包含项目的文件夹的数字 ID,从直接包含项目的文件夹开始,后跟包含子文件夹的文件夹,以此类推。例如,如果“folder_numbers”为“[1, 2, 3]”,则文件夹“1”直接包含项目,文件夹“2”包含“1”,文件夹“3”包含“2”。 |
user_email |
STRING |
(聚簇列)运行作业的用户的电子邮件地址或服务账号。 |
job_id |
STRING |
作业的 ID。例如 bquxjob_1234 。 |
job_type |
STRING |
作业的类型。可以是 QUERY 、LOAD 、EXTRACT 、COPY 或 null 。作业类型 null 表示内部作业,例如脚本作业语句评估或具体化视图刷新。 |
statement_type |
STRING |
查询语句(如果有效的话)的类型。例如 SELECT 、INSERT 、UPDATE 或 DELETE 。 |
job_creation_time |
TIMESTAMP |
(分区列)此作业的创建时间。分区基于此时间戳的世界协调时间 (UTC)。 |
job_start_time |
TIMESTAMP |
此作业的开始时间。 |
job_end_time |
TIMESTAMP |
此作业的结束时间。 |
state |
STRING |
在此时间段结束时作业处于运行状态。有效状态包括 PENDING 、RUNNING 、DONE 。 |
reservation_id |
STRING |
在此时间段结束时,分配给此作业的主要预留的名称(如果适用的话)。 |
total_bytes_processed |
INTEGER |
作业处理的字节总数。 |
error_result |
RECORD |
错误的详细信息(如有),为
ErrorProto.
|
cache_hit |
BOOLEAN |
查询此作业的查询结果是否来自缓存。 |
period_estimated_runnable_units |
INTEGER |
可以立即安排在此时间段的工作单元。通过为这些工作单元分配额外的槽,您可以加快查询速度,但前提是预留中没有其他查询需要额外的槽。 |
数据保留
此视图包含当前正在运行的作业和过去 180 天的作业历史记录。
范围和语法
针对此视图的查询必须包含区域限定符。如果您未指定区域限定符,则会从所有区域检索元数据。下表说明了此视图的区域和资源范围:
视图名称 | 资源范围 | 区域范围 |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_USER |
指定项目中当前用户提交的作业。 | REGION |
- 可选:
PROJECT_ID
:您的 Google Cloud 项目的 ID。如果未指定,则使用默认项目。 REGION
:任何数据集区域名称。例如region-us
。
示例
以下查询显示指定项目中当前用户提交的作业每秒使用的总槽毫秒数:
SELECT period_start, SUM(period_slot_ms) AS total_period_slot_ms FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_USER GROUP BY period_start ORDER BY period_start DESC;
结果类似于以下内容:
+---------------------------+---------------------------------+ | period_start | total_period_slot_ms | +---------------------------+---------------------------------+ | 2019-10-10 00:00:04 UTC | 118639 | | 2019-10-10 00:00:03 UTC | 251353 | | 2019-10-10 00:00:02 UTC | 1074064 | | 2019-10-10 00:00:01 UTC | 1124868 | | 2019-10-10 00:00:00 UTC | 1113961 | +---------------------------+---------------------------------+