테이블 클론 만들기
이 문서에서는 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
bq cp
명령어를 --clone
플래그와 함께 사용합니다.
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
operationType
필드가 CLONE
으로 설정된 jobs.insert
메서드를 호출합니다.
매개변수 | 값 |
---|---|
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
: 만들려는 테이블 클론의 이름입니다.
액세스 제어
테이블 클론을 만들 때 테이블 클론에 대한 액세스 권한이 다음과 같이 설정됩니다.
- 행 수준 액세스 정책이 기본 테이블에서 테이블 클론으로 복사됩니다.
- 열 수준 액세스 정책이 기본 테이블에서 테이블 클론으로 복사됩니다.
테이블 수준 액세스는 다음과 같이 결정됩니다.
다음 단계
- 테이블 클론을 만든 후에는 표준 테이블을 사용할 때처럼 사용할 수 있습니다. 자세한 내용은 테이블 관리를 참조하세요.