テーブル スナップショットのメタデータの更新
このドキュメントでは、 Cloud de Confiance コンソール、bq update コマンド、または tables.patch API を使用して、テーブル スナップショットの説明、有効期限、アクセス ポリシーを更新する方法について説明します。BigQuery のテーブルとテーブル スナップショットについて知識のあるユーザーを対象としています。
権限とロール
このセクションでは、テーブル スナップショットのメタデータを更新するために必要な Identity and Access Management(IAM)権限と、それらの権限を付与する事前定義された IAM ロールについて説明します。
権限
テーブル スナップショットのメタデータを更新するには、次の権限が必要です。
| 権限 | リソース | 
|---|---|
| bigquery.tables.update | テーブル スナップショット | 
ロール
必要な権限のある BigQuery の事前定義ロールは次のとおりです。
| 役割 | リソース | 
|---|---|
| 次のいずれか: bigquery.dataEditorbigquery.dataOwnerbiguqery.admin | テーブル スナップショット | 
制限事項
テーブル スナップショットのメタデータは更新できますが、テーブルのスナップショット データは読み取り専用のため、更新できません。テーブル スナップショットのデータを更新するには、テーブル スナップショットを標準テーブルに復元した後、標準テーブルのデータを更新する必要があります。詳細については、テーブル スナップショットを復元するをご覧ください。
テーブル スナップショットのメタデータを更新する
テーブル スナップショットの説明、有効期限、アクセス ポリシーは、標準テーブルのメタデータを変更する場合と同じ方法で変更できます。以下では、いくつかの例を紹介します。
説明を更新する
テーブル スナップショットの説明は、次のいずれかの方法を使用して変更できます。
コンソール
- Cloud de Confiance コンソールで、[BigQuery] ページに移動します。 
- 左側のペインで、 [エクスプローラ] をクリックします。  - 左側のペインが表示されていない場合は、 左側のペインを開くをクリックしてペインを開きます。 
- [エクスプローラ] ペインで、プロジェクトを開き、[データセット] をクリックして、テーブル スナップショットを含むデータセットをクリックします。 
- [概要 > テーブル] をクリックし、更新するテーブル スナップショットの名前をクリックします。 
- [詳細] タブに移動し、[詳細を編集] をクリックします。 
- [説明] フィールドで、テーブル スナップショットの説明を追加または更新します。 
- [保存] をクリックします。 
bq
Cloud Shell で次のコマンドを入力します。
bq update \ --description="DESCRIPTION" \ PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME
次のように置き換えます。
- DESCRIPTION: スナップショットを説明するテキスト。例:- Snapshot after table schema change X.
- PROJECT_ID: スナップショットを含むプロジェクトのプロジェクト ID。
- DATASET_NAME: スナップショットを含むデータセットの名前。
- SNAPSHOT_NAME: スナップショットの名前。
API
次のパラメータを指定して、tables.patch メソッドを呼び出します。
| パラメータ | 値 | 
|---|---|
| projectId | スナップショットを含むプロジェクトのプロジェクト ID。 | 
| datasetId | スナップショットを含むデータセットの名前。 | 
| tableId | スナップショットの名前。 | 
| リクエスト本文の descriptionフィールド | スナップショットを説明するテキスト。例: Snapshot after table schema change X | 
tables.update メソッドは Table リソース全体を置き換えるため、tables.update メソッドよりも tables.patch メソッドを選択することをおすすめします。
有効期限を更新する
テーブル スナップショットの有効期限は、次のいずれかのオプションを使用して変更できます。
コンソール
- Cloud de Confiance コンソールで、[BigQuery] ページに移動します。 
- 左側のペインで、 [エクスプローラ] をクリックします。  
- [エクスプローラ] ペインで、プロジェクトを開き、[データセット] をクリックして、テーブル スナップショットを含むデータセットをクリックします。 
- [概要 > テーブル] をクリックし、更新するテーブル スナップショットの名前をクリックします。 
- [詳細] タブに移動し、[詳細を編集] をクリックします。 
- [有効期限] フィールドに、テーブル スナップショットの新しい有効期限を入力します。 
- [保存] をクリックします。 
bq
Cloud Shell で次のコマンドを入力します。
bq update \ --expiration=EXPIRATION_TIME \ PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME
次のように置き換えます。
- EXPIRATION_TIME: 現在の時刻から有効期限までの秒数。
- PROJECT_ID: スナップショットを含むプロジェクトのプロジェクト ID。
- DATASET_NAME: スナップショットを含むデータセットの名前。
- SNAPSHOT_NAME: スナップショットの名前。
API
次のパラメータを指定して、tables.patch メソッドを呼び出します。
| パラメータ | 値 | 
|---|---|
| projectId | スナップショットを含むプロジェクトのプロジェクト ID。 | 
| datasetId | スナップショットを含むデータセットの名前。 | 
| tableId | スナップショットの名前。 | 
| リクエスト本文の expirationTimeフィールド | エポックからのミリ秒で示した、スナップショットの有効期限。 | 
tables.update メソッドは Table リソース全体を置き換えるため、tables.update メソッドよりも tables.patch メソッドを選択することをおすすめします。
アクセス権を更新する
次のいずれかのオプションを使用して、テーブル スナップショットのデータを表示するためのアクセス権をユーザーに付与できます。
コンソール
- Cloud de Confiance コンソールで、[BigQuery] ページに移動します。 
- 左側のペインで、 [エクスプローラ] をクリックします。  
- [エクスプローラ] ペインで、プロジェクトを開き、[データセット] をクリックして、テーブル スナップショットを含むデータセットをクリックします。 
- [概要 > テーブル] をクリックし、共有するテーブル スナップショットの名前をクリックします。 
- 表示されたスナップショット ペインで、[共有] をクリックし、[プリンシパルを追加] をクリックします。 
- 表示された [プリンシパルを追加] ペインで、テーブル スナップショットへのアクセス権を付与するプリンシパルの ID を入力します。 
- [ロールを選択] プルダウンで、[BigQuery]、[BigQuery データ閲覧者] の順に選択します。 
- [保存] をクリックします。 
bq
Cloud Shell で次のコマンドを入力します。
bq add-iam-policy-binding \ --member="user:PRINCIPAL" \ --role="roles/bigquery.dataViewer" \ PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME
次のように置き換えます。
- PRINCIPAL: テーブル スナップショットへのアクセス権を付与するプリンシパル。
- PROJECT_ID: スナップショットを含むプロジェクトのプロジェクト ID。
- DATASET_NAME: スナップショットを含むデータセットの名前。
- SNAPSHOT_NAME: スナップショットの名前。
API
次のパラメータを指定して、tables.setIamPolicy メソッドを呼び出します。
| パラメータ | 値 | 
|---|---|
| Resource | projects/PROJECT_ID/datasets/DATASET_NAME/tables/SNAPSHOT_NAME | 
| リクエストの本文 | { "policy": { "bindings": [ { "members": [ "user:PRINCIPAL" ], "role": "roles/bigquery.dataViewer" } ] } } | 
次のように置き換えます。
- PROJECT_ID: スナップショットを含むプロジェクトのプロジェクト ID。
- DATASET_NAME: スナップショットを含むデータセットの名前。
- SNAPSHOT_NAME: スナップショットの名前。
- PRINCIPAL: テーブル スナップショットへのアクセス権を付与するプリンシパル。