创建表克隆
本文档介绍如何使用 CREATE TABLE CLONE
SQL 语句、bq cp
命令或 jobs.insert
API 调用将表复制到表克隆。本文档适用于熟悉表克隆的用户。
权限和角色
本部分介绍了创建表克隆所需的 Identity and Access Management (IAM) 权限以及授予这些权限的预定义 IAM 角色。
权限
如需创建表克隆,您需要具有以下权限:
权限 | 资源 |
---|---|
以下所有项:bigquery.tables.get bigquery.tables.getData |
要为其创建克隆的表。 |
bigquery.tables.create bigquery.tables.updateData
|
包含表克隆的数据集。 |
角色
提供所需权限的预定义 BigQuery 角色如下所示:
角色 | 资源 |
---|---|
以下任意一项:bigquery.dataViewer bigquery.dataEditor bigquery.dataOwner bigquery.admin
|
要为其创建克隆的表。 |
以下任意一项:bigquery.dataEditor bigquery.dataOwner bigquery.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 -n project1:myDataset.myTable PROJECT:DATASET.CLONE_NAME
请替换以下内容:
PROJECT
是目标项目的项目 ID。此项目必须与您要克隆的表所属的项目位于同一组织。DATASET
:目标数据集的名称。 此数据集必须与您要克隆的表所属的数据集位于同一区域。如果此数据集与要克隆的表所属的数据集不在同一区域,则会复制整个表。CLONE_NAME
是您要创建的表克隆的名称。
如果您要在基表所在的项目中创建克隆,则可以跳过指定项目,如下所示:
bq cp --clone -n 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
是您要创建的表克隆的名称。
访问权限控制
创建表克隆时,对表克隆的访问权限设置如下:
后续步骤
- 创建表克隆后,您便可以像使用标准表一样使用它。如需了解详情,请参阅管理表。