ASSIGNMENTS 视图

INFORMATION_SCHEMA.ASSIGNMENTS 视图包含管理项目中所有当前分配的列表。每一行代表一个当前分配。当前分配处于待处理或活跃状态,且尚未删除。如需详细了解预留,请参阅预留简介

所需权限

如需查询 INFORMATION_SCHEMA.ASSIGNMENTS 视图,您需要拥有项目的 bigquery.reservationAssignments.list Identity and Access Management (IAM) 权限。以下每个预定义的 IAM 角色均可提供所需的权限:

  • roles/bigquery.resourceAdmin
  • roles/bigquery.resourceEditor
  • roles/bigquery.resourceViewer
  • roles/bigquery.user
  • roles/bigquery.admin

如需详细了解 BigQuery 权限,请参阅使用 IAM 进行访问权限控制

架构

INFORMATION_SCHEMA.ASSIGNMENTS 视图具有如下架构:

列名 数据类型
ddl STRING 用于创建此分配的 DDL 语句。
project_id STRING 管理项目的 ID。
project_number INTEGER 管理项目的编号。
assignment_id STRING 唯一标识分配的 ID。
reservation_name STRING 分配使用的预留的名称。
job_type STRING 可以使用该预留的作业的类型。可以是 PIPELINEQUERYML_EXTERNALBACKGROUND
assignee_id STRING 唯一标识分配对象资源的 ID。
assignee_number INTEGER 唯一标识分配对象资源的编号。
assignee_type STRING 分配对象资源的类型。可以是 organizationfolderproject

范围和语法

针对此视图的查询必须包含区域限定符。如果您未指定区域限定符,则会从所有区域检索元数据。下表说明了此视图的区域范围:

视图名称 资源范围 区域范围
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.ASSIGNMENTS[_BY_PROJECT]
项目级 REGION
替换以下内容:

  • 可选:PROJECT_ID:您的 Google Cloud 项目的 ID。如果未指定,则使用默认项目。
  • REGION:任何数据集区域名称。例如 region-us

示例

如需对非默认项目运行查询,请按以下格式添加项目 ID:

`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.ASSIGNMENTS
.

替换以下内容:

  • PROJECT_ID:您已为其分配预留的项目的 ID。
  • REGION_NAME:区域的名称。

例如 `myproject`.`region-us`.INFORMATION_SCHEMA.ASSIGNMENTS

以下示例获取了项目的当前分配预留及其槽容量。通过将项目的槽使用量与分配给该项目的预留的槽容量进行比较来调试作业性能时,此信息会非常实用。

SELECT
  reservation.reservation_name,
  reservation.slot_capacity
FROM
  `RESERVATION_ADMIN_PROJECT.region-REGION_NAME`.
  INFORMATION_SCHEMA.ASSIGNMENTS_BY_PROJECT assignment
INNER JOIN
  `RESERVATION_ADMIN_PROJECT.region-REGION_NAME`.
  INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT AS reservation
ON
  (assignment.reservation_name = reservation.reservation_name)
WHERE
   assignment.assignee_id = "PROJECT_ID"
  AND job_type = "QUERY";