ASSIGNMENT_CHANGES 檢視畫面
INFORMATION_SCHEMA.ASSIGNMENT_CHANGES
檢視畫面會列出管理專案中所有指派項目的變更,且近乎即時。每一列代表對單一指派項目的單一變更。如要進一步瞭解預留項目,請參閱「預留項目簡介」。
必要權限
如要查詢 INFORMATION_SCHEMA.ASSIGNMENT_CHANGES
檢視畫面,您需要專案的 bigquery.reservationAssignments.list
身分與存取權管理 (IAM) 權限。下列預先定義的 IAM 角色都包含必要權限:
roles/bigquery.resourceAdmin
roles/bigquery.resourceEditor
roles/bigquery.resourceViewer
roles/bigquery.user
roles/bigquery.admin
如要進一步瞭解 BigQuery 權限,請參閱「使用身分與存取權管理功能控管存取權」一文。
結構定義
INFORMATION_SCHEMA.ASSIGNMENT_CHANGES
檢視表具有下列結構定義:
資料欄名稱 | 資料類型 | 值 |
---|---|---|
change_timestamp |
TIMESTAMP |
變更發生的時間。 |
project_id |
STRING |
管理專案的 ID。 |
project_number |
INTEGER |
管理專案的編號。 |
assignment_id |
STRING |
可明確識別作業的 ID。 |
reservation_name |
STRING |
指派項目使用的預留項目名稱。 |
job_type |
STRING |
可使用保留項目的工作類型。可以是 PIPELINE 或 QUERY 。 |
assignee_id |
STRING |
唯一識別指派對象資源的 ID。 |
assignee_number |
INTEGER |
可明確識別指派對象資源的號碼。 |
assignee_type |
STRING |
指派對象資源的類型。可以是 organization 、folder 或 project 。 |
action |
STRING |
指派作業發生的事件類型。可以是 CREATE 、UPDATE 或 DELETE 。 |
user_email |
STRING |
進行變更的使用者電子郵件地址或員工身分聯盟主體。google ,瞭解 Google 進行的變更。NULL :如果電子郵件地址不明。
|
state |
STRING |
指派狀態。可以是 PENDING 或 ACTIVE 。 |
資料保留
這個檢視畫面會顯示目前的指派項目和已刪除的指派項目,這些項目最多會保留 41 天,之後就會從檢視畫面中移除。
範圍和語法
對這個檢視表執行的查詢必須包含區域限定詞。如未指定區域限定符,系統會從所有區域擷取中繼資料。下表說明這個檢視畫面的區域範圍:
檢視表名稱 | 資源範圍 | 區域範圍 |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.ASSIGNMENT_CHANGES[_BY_PROJECT] |
專案層級 | REGION |
-
選用:
PROJECT_ID
:您的 Google Cloud 專案 ID。如未指定,系統會使用預設專案。 -
REGION
:任何資料集區域名稱。 例如:`region-us`
。
範例
查看作業的最新變更
以下範例會顯示在指定日期內,對特定作業進行最新指派更新的使用者。
SELECT user_email, change_timestamp, reservation_name, assignment_id FROM `region-us`.INFORMATION_SCHEMA.ASSIGNMENT_CHANGES WHERE change_timestamp BETWEEN '2021-09-30' AND '2021-10-01' AND assignment_id = 'assignment_01' ORDER BY change_timestamp DESC LIMIT 1;
結果會類似如下:
+--------------------------------+-----------------------+--------------------+-----------------+ | user_email | change_timestamp | reservation_name | assignment_id | +--------------------------------+-----------------------+--------------------+-----------------+ | cloudysanfrancisco@gmail.com |2021-09-30 09:30:00 UTC| my_reservation | assignment_01 | +--------------------------------+-----------------------+--------------------+-----------------+
找出特定時間點的預訂指派狀態
以下範例會顯示特定時間點的預訂項目所有有效指派項目。
SELECT reservation_name, assignee_id, assignee_type, job_type FROM `region-REGION`.INFORMATION_SCHEMA.ASSIGNMENT_CHANGES WHERE reservation_name = RESERVATION_NAME AND change_timestamp < TIMESTAMP QUALIFY ROW_NUMBER() OVER(PARTITION BY assignee_id, job_type ORDER BY change_timestamp DESC) = 1 AND action != 'DELETE';
更改下列內容:
REGION
:預留項目所在的區域RESERVATION_NAME
:指派作業使用的預訂名稱TIMESTAMP
:代表檢查作業清單的特定時間點的時間戳記
結果會類似如下:
+-------------------------+---------------------------+---------------+----------+ | reservation_name | assignee_id | assignee_type | job_type | +-------------------------+---------------------------+---------------+----------+ | test-reservation | project_1 | PROJECT | QUERY | | test-reservation | project_2 | PROJECT | QUERY | +-------------------------+---------------------------+---------------+----------+
找出特定工作執行時的預訂指派狀態
如要顯示特定作業執行時的有效指派項目,請使用下列範例。
SELECT reservation_name, assignee_id, assignee_type, job_type FROM `region-REGION`.INFORMATION_SCHEMA.ASSIGNMENT_CHANGES WHERE reservation_name = RESERVATION_NAME AND change_timestamp < (SELECT creation_time FROM PROJECT_ID.`region-REGION`.INFORMATION_SCHEMA.JOBS WHERE job_id = JOB_ID) QUALIFY ROW_NUMBER() OVER(PARTITION BY assignee_id, job_type ORDER BY change_timestamp DESC) = 1 AND action != 'DELETE';
更改下列內容:
REGION
:預留項目所在的區域RESERVATION_NAME
:指派作業使用的預訂名稱PROJECT_ID
:執行作業的 Google Cloud 專案 IDJOB_ID
:用來檢查指派狀態的作業 ID