建立資料表本機副本
本文說明如何使用 CREATE TABLE CLONE SQL 陳述式、bq cp 指令或 jobs.insert API 呼叫,將資料表複製到資料表副本。本文適用於熟悉表格副本的使用者。
權限與角色
本節說明建立資料表副本時所需的Identity and Access Management (IAM) 權限,以及授予這些權限的預先定義 IAM 角色。
權限
如要建立資料表副本,您必須具備下列權限:
| 權限 | 資源 |
|---|---|
符合下列所有條件:bigquery.tables.getbigquery.tables.getData |
要複製的表格。 |
bigquery.tables.createbigquery.tables.updateData
|
包含資料表副本的資料集。 |
角色
提供必要權限的預先定義 BigQuery 角色如下:
| 角色 | 資源 |
|---|---|
下列任一項:bigquery.dataViewerbigquery.dataEditorbigquery.dataOwnerbigquery.admin
|
要複製的表格。 |
下列任一項:bigquery.dataEditorbigquery.dataOwnerbigquery.admin
|
包含新資料表副本的資料集。 |
建立資料表副本
使用 GoogleSQL、bq 指令列工具或 BigQuery API 建立資料表副本。
SQL
如要複製資料表,請使用 CREATE TABLE CLONE 陳述式。
前往 Google Cloud 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
CREATE TABLE myproject.myDataset_backup.myTableClone CLONE myproject.myDataset.myTable;
按一下「執行」。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
更改下列內容:
PROJECT是目標專案的專案 ID。 這個專案必須與包含要複製資料表的專案位於同一個機構。DATASET是目標資料集的名稱。 這個資料集必須與包含要複製資料表的資料集位於同一個地區。CLONE_NAME是您要建立的資料表副本名稱。
bq
使用加上 --clone 旗標的 bq cp 指令:
bq cp --clone --no_clobber project1:myDataset.myTable PROJECT:DATASET.CLONE_NAME
更改下列內容:
PROJECT是目標專案的專案 ID。 這個專案必須與包含要複製資料表的專案位於同一個機構。DATASET是目標資料集的名稱。 這個資料集必須與包含要複製資料表的資料集位於同一個地區。如果資料集與包含要複製資料表的資料集不在同一區域,系統會複製整個資料表。CLONE_NAME是您要建立的資料表副本名稱。
--no_clobber 旗標為必要項目。
如要在與基礎資料表相同的專案中建立副本,可以略過指定專案,如下所示:
bq cp --clone --no_clobber myDataset.myTable DATASET.CLONE_NAME
API
呼叫 jobs.insert 方法,並將 operationType 欄位設為 CLONE:
| 參數 | 值 |
|---|---|
projectId |
執行工作的專案 ID。 |
| 要求主體 | { "configuration": { "copy": { "sourceTables": [ { "projectId": "myProject", "datasetId": "myDataset", "tableId": "myTable" } ], "destinationTable": { "projectId": "PROJECT", "datasetId": "DATASET", "tableId": "CLONE_NAME" }, "operationType": "CLONE", "writeDisposition": "WRITE_EMPTY", } } } |
更改下列內容:
PROJECT是目標專案的專案 ID。 這個專案必須與包含要複製資料表的專案位於同一個機構。DATASET是目標資料集的名稱。 這個資料集必須與包含要複製資料表的資料集位於同一個地區。如果資料集與包含要複製資料表的資料集不在同一區域,系統會複製整個資料表。CLONE_NAME是您要建立的資料表副本名稱。
存取控管
建立資料表副本時,系統會依下列方式設定資料表副本的存取權:
- 資料列層級存取政策會從基礎資料表複製到資料表副本。
- 資料欄層級存取權政策 會從基礎資料表複製到資料表副本。
資料表層級的存取權取決於下列因素:
後續步驟
- 建立資料表副本後,您就可以像使用標準資料表一樣使用副本。 詳情請參閱「管理資料表」。