更新資料表快照中繼資料
本文說明如何使用 Google Cloud 主控台、bq update
指令或 tables.patch
API,更新資料表快照的說明、到期日或存取政策。本文章適用於熟悉 BigQuery 中的資料表和資料表快照的使用者。
權限與角色
本節說明更新資料表快照的結構描述時所需的身分與存取權管理 (IAM) 權限,以及授予這些權限的預先定義 IAM 角色。
權限
如要更新資料表快照的中繼資料,您需要具備下列權限:
權限 | 資源 |
---|---|
bigquery.tables.update
|
資料表快照 |
角色
提供必要權限的預先定義 BigQuery 角色如下:
角色 | 資源 |
---|---|
下列任一項:bigquery.dataEditor bigquery.dataOwner biguqery.admin
|
資料表快照 |
限制
您可以更新資料表快照的中繼資料,但無法更新資料表快照資料,因為資料表快照資料為唯讀。如要更新資料表快照的資料,您必須先將資料表快照還原至標準資料表,然後再更新標準資料表的資料。詳情請參閱「還原資料表快照」。
更新資料表快照的中繼資料
您可以更改資料表快照的說明、到期時間和存取政策,方法與變更標準資料表的中繼資料相同。以下幾節會提供一些範例。
更新說明
您可以使用下列任一選項,變更表格快照的說明:
主控台
前往 Google Cloud 控制台的「BigQuery」頁面。
在「Explorer」窗格中,展開要更新的資料表快照的專案和資料集節點。
按一下資料表快照的名稱。
在隨即顯示的快照窗格中,按一下「詳細資料」分頁,然後點選「編輯詳細資料」。
在「說明」欄位中,新增或更新資料表快照的說明。
按一下 [儲存]。
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.patch
方法,而非 tables.update
方法,因為 tables.update
方法會取代整個 Table
資源。
更新到期時間
您可以使用下列其中一個選項,變更資料表快照的到期時間:
主控台
前往 Google Cloud 控制台的「BigQuery」頁面。
在「Explorer」窗格中,展開要更新的資料表快照的專案和資料集節點。
按一下資料表快照的名稱。
在隨即顯示的快照窗格中,按一下「詳細資料」分頁,然後點選「編輯詳細資料」。
在「到期時間」欄位中,輸入資料表快照的新到期時間。
按一下 [儲存]。
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 欄位 |
快照到期時間,以自 Epoch 紀元時間起算的毫秒數為單位。 |
建議使用 tables.patch
方法,而非 tables.update
方法,因為 tables.update
方法會取代整個 Table
資源。
更新存取權
您可以使用下列任一選項,授予使用者查看表格快照中資料的權限:
主控台
前往 Google Cloud 控制台的「BigQuery」頁面。
在「Explorer」窗格中,展開要更新的資料表快照的專案和資料集節點。
按一下資料表快照的名稱。
在隨即顯示的快照窗格中,按一下「共用」,然後點選「新增管理者」。
在隨即顯示的「Add principals」窗格中,輸入您要授予表格快照存取權的主體 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
:您要授予資料表快照存取權的實體。