更新資料表快照中繼資料

本文說明如何使用 Google Cloud 主控台、bq update 指令或 tables.patch API,更新資料表快照的說明、到期日或存取政策。本文章適用於熟悉 BigQuery 中的資料表資料表快照的使用者。

權限與角色

本節說明更新資料表快照的結構描述時所需的身分與存取權管理 (IAM) 權限,以及授予這些權限的預先定義 IAM 角色

權限

如要更新資料表快照的中繼資料,您需要具備下列權限:

權限 資源
bigquery.tables.update 資料表快照

角色

提供必要權限的預先定義 BigQuery 角色如下:

角色 資源
下列任一項:

bigquery.dataEditor
bigquery.dataOwner
biguqery.admin
資料表快照

限制

您可以更新資料表快照的中繼資料,但無法更新資料表快照資料,因為資料表快照資料為唯讀。如要更新資料表快照的資料,您必須先將資料表快照還原至標準資料表,然後再更新標準資料表的資料。詳情請參閱「還原資料表快照」。

更新資料表快照的中繼資料

您可以更改資料表快照的說明、到期時間和存取政策,方法與變更標準資料表的中繼資料相同。以下幾節會提供一些範例。

更新說明

您可以使用下列任一選項,變更表格快照的說明:

主控台

  1. 前往 Google Cloud 控制台的「BigQuery」頁面。

    前往 BigQuery

  2. 在「Explorer」窗格中,展開要更新的資料表快照的專案和資料集節點。

  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.patch 方法,而非 tables.update 方法,因為 tables.update 方法會取代整個 Table 資源。

更新到期時間

您可以使用下列其中一個選項,變更資料表快照的到期時間:

主控台

  1. 前往 Google Cloud 控制台的「BigQuery」頁面。

    前往 BigQuery

  2. 在「Explorer」窗格中,展開要更新的資料表快照的專案和資料集節點。

  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 欄位 快照到期時間,以自 Epoch 紀元時間起算的毫秒數為單位。

建議使用 tables.patch 方法,而非 tables.update 方法,因為 tables.update 方法會取代整個 Table 資源。

更新存取權

您可以使用下列任一選項,授予使用者查看表格快照中資料的權限:

主控台

  1. 前往 Google Cloud 控制台的「BigQuery」頁面。

    前往 BigQuery

  2. 在「Explorer」窗格中,展開要更新的資料表快照的專案和資料集節點。

  3. 按一下資料表快照的名稱。

  4. 在隨即顯示的快照窗格中,按一下「共用」,然後點選「新增管理者」

  5. 在隨即顯示的「Add principals」窗格中,輸入您要授予表格快照存取權的主體 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:您要授予資料表快照存取權的實體

後續步驟