テーブル スナップショットのメタデータの更新
このドキュメントでは、Google Cloud コンソール、bq update
コマンド、または tables.patch
API を使用して、テーブル スナップショットの説明、有効期限、アクセス ポリシーを更新する方法について説明します。BigQuery のテーブルとテーブル スナップショットについて知識のあるユーザーを対象としています。
権限とロール
このセクションでは、テーブル スナップショットのメタデータを更新するために必要な Identity and Access Management(IAM)権限と、それらの権限を付与する事前定義された IAM ロールについて説明します。
権限
テーブル スナップショットのメタデータを更新するには、次の権限が必要です。
権限 | リソース |
---|---|
bigquery.tables.update
|
テーブル スナップショット |
ロール
必要な権限のある BigQuery の事前定義ロールは次のとおりです。
ロール | リソース |
---|---|
次のいずれか:bigquery.dataEditor bigquery.dataOwner biguqery.admin
|
テーブル スナップショット |
制限事項
テーブル スナップショットのメタデータは更新できますが、テーブルのスナップショット データは読み取り専用のため、更新できません。テーブル スナップショットのデータを更新するには、テーブル スナップショットを標準テーブルに復元した後、標準テーブルのデータを更新する必要があります。詳細については、テーブル スナップショットを復元するをご覧ください。
テーブル スナップショットのメタデータを更新する
テーブル スナップショットの説明、有効期限、アクセス ポリシーは、標準テーブルのメタデータを変更する場合と同じ方法で変更できます。以下では、いくつかの例を紹介します。
説明を更新する
テーブル スナップショットの説明は、次のいずれかの方法を使用して変更できます。
コンソール
Google Cloud コンソールで [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
メソッドを選択することをおすすめします。
有効期限を更新する
テーブル スナップショットの有効期限は、次のいずれかのオプションを使用して変更できます。
コンソール
Google Cloud コンソールで [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
メソッドを選択することをおすすめします。
アクセス権を更新する
次のいずれかのオプションを使用して、テーブル スナップショットのデータを表示するためのアクセス権をユーザーに付与できます。
コンソール
Google Cloud コンソールで [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
: テーブル スナップショットへのアクセス権を付与するプリンシパル。