更新資料表快照中繼資料

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

權限與角色

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

權限

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

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

角色

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

角色 資源
下列任一項:

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

限制

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

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

變更資料表快照的說明、到期時間和存取政策,與變更標準資料表的中繼資料方式相同。以下各節提供幾個範例。

更新說明

如要變更資料表快照的說明,請使用下列任一選項:

主控台

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

    前往「BigQuery」

  2. 在左側窗格中,按一下「Explorer」

    醒目顯示的「Explorer」窗格按鈕。

    如果沒有看到左側窗格,請按一下「展開左側窗格」圖示 開啟窗格。

  3. 在「Explorer」窗格中展開專案,按一下「Datasets」,然後按一下含有資料表快照的資料集。

  4. 依序點按「總覽」>「資料表」,然後點選要更新的資料表快照名稱。

  5. 前往「詳細資料」分頁,然後點選「編輯詳細資料」

  6. 在「Description」(說明) 欄位中,新增或更新表格快照的說明。

  7. 按一下 [儲存]

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. 前往 Cloud de Confiance 控制台的「BigQuery」頁面。

    前往「BigQuery」

  2. 在左側窗格中,按一下「Explorer」

    醒目顯示的「Explorer」窗格按鈕。

  3. 在「Explorer」窗格中展開專案,按一下「Datasets」,然後按一下含有資料表快照的資料集。

  4. 依序點按「總覽」>「資料表」,然後點選要更新的資料表快照名稱。

  5. 前往「詳細資料」分頁,然後點選「編輯詳細資料」

  6. 在「Expiration time」(到期時間) 欄位中,輸入資料表快照的新到期時間。

  7. 按一下 [儲存]

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. 前往 Cloud de Confiance 控制台的「BigQuery」頁面。

    前往「BigQuery」

  2. 在左側窗格中,按一下「Explorer」

    醒目顯示的「Explorer」窗格按鈕。

  3. 在「Explorer」窗格中展開專案,按一下「Datasets」,然後按一下含有資料表快照的資料集。

  4. 依序點按「總覽」>「資料表」,然後按一下要共用的資料表快照名稱。

  5. 在隨即顯示的快照窗格中,依序按一下「共用」和「新增主體」

  6. 在隨即顯示的「新增主體」窗格中,輸入要授予表格快照存取權的主體 ID。

  7. 在「Select a role」(選取角色) 下拉式選單中,依序選擇「BigQuery」和「BigQuery Data Viewer」(BigQuery 資料檢視者)

  8. 按一下 [儲存]

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:您要授予資料表快照存取權的主體

後續步驟