ASSIGNMENT_CHANGES ビュー
INFORMATION_SCHEMA.ASSIGNMENT_CHANGES ビューには、管理プロジェクト内の割り当てに対するすべての変更を準リアルタイムで示すリストが含まれます。各行は 1 つの割り当てに対する 1 つの変更を表します。予約の詳細については、予約の概要をご覧ください。
必要な権限
INFORMATION_SCHEMA.ASSIGNMENT_CHANGES ビューをクエリするには、プロジェクトの bigquery.reservationAssignments.list Identity and Access Management(IAM)権限が必要です。次に示す事前定義された各 IAM ロールには、必要な権限が含まれています。
roles/bigquery.resourceAdminroles/bigquery.resourceEditorroles/bigquery.resourceViewerroles/bigquery.userroles/bigquery.admin
BigQuery の権限の詳細については、IAM でのアクセス制御をご覧ください。
スキーマ
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 |
変更を行ったユーザーまたは Workforce Identity 連携のサブジェクトのメールアドレス。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