建立資料表本機副本
本文說明如何使用 CREATE TABLE CLONE SQL 陳述式、bq cp 指令或 jobs.insert API 呼叫,將資料表複製到資料表複本。本文件適用於熟悉資料表複本的使用者。
權限與角色
本節說明建立資料表複本時所需的身分與存取權管理 (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; 
- 按一下 「Run」。 
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」一文。
更改下列內容:
- 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是您要建立的資料表複本名稱。
存取權控管
建立表格複本時,系統會將表格複本的存取權設為以下方式:
- 將資料列層級存取權政策從基礎資料表複製到資料表複本。
- 系統會將資料欄層級存取權政策從基礎資料表複製到資料表複本。
- 資料表層級存取權的判斷方式如下: 
後續步驟
- 建立表格複本後,您可以像使用標準表格一樣使用該複本。詳情請參閱「管理資料表」。