テーブル スナップショットのメタデータの更新

このドキュメントでは、Google Cloud コンソール、bq update コマンド、または tables.patch API を使用して、テーブル スナップショットの説明、有効期限、アクセス ポリシーを更新する方法について説明します。BigQuery のテーブルテーブル スナップショットについて知識のあるユーザーを対象としています。

権限とロール

このセクションでは、テーブル スナップショットのメタデータを更新するために必要な Identity and Access Management(IAM)権限と、それらの権限を付与する事前定義された IAM ロールについて説明します。

権限

テーブル スナップショットのメタデータを更新するには、次の権限が必要です。

権限 リソース
bigquery.tables.update テーブル スナップショット

ロール

必要な権限のある BigQuery の事前定義ロールは次のとおりです。

ロール リソース
次のいずれか:

bigquery.dataEditor
bigquery.dataOwner
biguqery.admin
テーブル スナップショット

制限事項

テーブル スナップショットのメタデータは更新できますが、テーブルのスナップショット データは読み取り専用のため、更新できません。テーブル スナップショットのデータを更新するには、テーブル スナップショットを標準テーブルに復元した後、標準テーブルのデータを更新する必要があります。詳細については、テーブル スナップショットを復元するをご覧ください。

テーブル スナップショットのメタデータを更新する

テーブル スナップショットの説明、有効期限、アクセス ポリシーは、標準テーブルのメタデータを変更する場合と同じ方法で変更できます。以下では、いくつかの例を紹介します。

説明を更新する

テーブル スナップショットの説明は、次のいずれかの方法を使用して変更できます。

コンソール

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. [エクスプローラ] ペインで、更新するテーブル スナップショットのプロジェクトとデータセット ノードを開きます。

  3. テーブルのスナップショットの名前をクリックします。

  4. 表示されたスナップショット ペインで、[詳細] タブをクリックし、[詳細を編集] をクリックします。

  5. [説明] フィールドで、テーブル スナップショットの説明を追加または更新します。

  6. [保存] をクリックします。

bq

Cloud Shell で次のコマンドを入力します。

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 メソッドを選択することをおすすめします。

有効期限を更新する

テーブル スナップショットの有効期限は、次のいずれかのオプションを使用して変更できます。

コンソール

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. [エクスプローラ] ペインで、更新するテーブル スナップショットのプロジェクトとデータセット ノードを開きます。

  3. テーブルのスナップショットの名前をクリックします。

  4. 表示されたスナップショット ペインで、[詳細] タブをクリックし、[詳細を編集] をクリックします。

  5. [有効期限] フィールドに、テーブル スナップショットの新しい有効期限を入力します。

  6. [保存] をクリックします。

bq

Cloud Shell で次のコマンドを入力します。

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 メソッドを選択することをおすすめします。

アクセス権を更新する

次のいずれかのオプションを使用して、テーブル スナップショットのデータを表示するためのアクセス権をユーザーに付与できます。

コンソール

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. [エクスプローラ] ペインで、更新するテーブル スナップショットのプロジェクトとデータセット ノードを開きます。

  3. テーブルのスナップショットの名前をクリックします。

  4. 表示されたスナップショット ペインで、[共有] をクリックし、[プリンシパルを追加] をクリックします。

  5. 表示された [プリンシパルを追加] ペインで、テーブル スナップショットへのアクセス権を付与するプリンシパルの ID を入力します。

  6. [ロールを選択] プルダウンで、[BigQuery]、[BigQuery データ閲覧者] の順に選択します。

  7. [保存] をクリックします。

bq

Cloud Shell で次のコマンドを入力します。

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: テーブル スナップショットへのアクセス権を付与するプリンシパル

次のステップ