테이블 관리
이 문서에서는 BigQuery에서 테이블을 관리하는 방법을 설명합니다. 다음 방법으로 BigQuery 테이블을 관리할 수 있습니다.
테이블 정보 가져오기, 테이블 나열, 테이블 데이터 액세스 제어를 비롯하여 테이블 만들기 및 사용에 대한 자세한 내용은 테이블 만들기 및 사용을 참조하세요.
시작하기 전에
사용자에게 이 문서의 각 작업을 수행하는 데 필요한 권한을 부여하는 Identity and Access Management(IAM) 역할을 부여합니다. 태스크를 수행하는 데 필요한 권한(있는 경우)이 태스크의 '필요한 권한' 섹션에 나열됩니다.
테이블 속성 업데이트
테이블의 다음 요소를 업데이트할 수 있습니다.
필수 권한
테이블 속성을 업데이트하는 데 필요한 권한을 얻으려면 관리자에게 테이블에 대한 데이터 편집자(roles/bigquery.dataEditor
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 테이블 속성을 업데이트하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
테이블 속성을 업데이트하려면 다음 권한이 필요합니다.
-
bigquery.tables.update
-
bigquery.tables.get
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
또한 bigquery.datasets.create
권한이 있으면 만드는 데이터 세트의 테이블 속성을 업데이트할 수 있습니다.
테이블 설명 업데이트
다음 방법으로 테이블 설명을 업데이트할 수 있습니다.
- Google Cloud 콘솔 사용
- 데이터 정의 언어(DDL)
ALTER TABLE
문 사용 - bq 명령줄 도구의
bq update
명령어 사용 tables.patch
API 메서드 호출- 클라이언트 라이브러리 사용
테이블 설명을 업데이트하는 방법:
콘솔
Google Cloud 콘솔을 사용하여 테이블을 만들 때는 설명을 추가할 수 없습니다. 테이블이 생성된 후 세부정보 페이지에서 설명을 추가할 수 있습니다.
탐색기 패널에서 프로젝트와 데이터 세트를 펼친 후 테이블을 선택합니다.
세부정보 패널에서 세부정보를 클릭합니다.
설명 섹션에서 연필 아이콘을 클릭하여 설명을 수정합니다.
상자에 설명을 입력하고 업데이트를 클릭하여 저장합니다.
SQL
ALTER TABLE SET OPTIONS
문을 사용합니다.
다음 예시에서는 mytable
이라는 테이블의 설명을 업데이트합니다.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 다음 문을 입력합니다.
ALTER TABLE mydataset.mytable SET OPTIONS ( description = 'Description of mytable');
실행을 클릭합니다.
쿼리를 실행하는 방법에 대한 자세한 내용은 대화형 쿼리 실행을 참조하세요.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
bq update
명령어를--description
플래그와 함께 실행합니다. 기본 프로젝트가 아닌 다른 프로젝트의 테이블을 업데이트하려면 프로젝트 ID를project_id:dataset
형식으로 데이터 세트 이름에 추가합니다.bq update \ --description "description" \ project_id:dataset.table
다음을 바꿉니다.
description
: 따옴표로 묶은 테이블을 설명하는 텍스트project_id
: 프로젝트 IDdataset
: 업데이트할 테이블이 포함된 데이터 세트의 이름table
: 업데이트할 테이블의 이름
예를 들면 다음과 같습니다.
mydataset
데이터 세트의mytable
테이블 설명을 'Description of mytable'로 변경하려면 다음 명령어를 입력합니다.mydataset
데이터 세트는 기본 프로젝트에 있습니다.bq update --description "Description of mytable" mydataset.mytable
mydataset
데이터 세트의mytable
테이블 설명을 'Description of mytable'로 변경하려면 다음 명령어를 입력합니다.mydataset
데이터 세트는 기본 프로젝트가 아닌myotherproject
프로젝트에 있습니다.bq update \ --description "Description of mytable" \ myotherproject:mydataset.mytable
API
tables.patch
메서드를 호출하고 테이블 리소스의 description
속성을 사용하여 테이블 설명을 업데이트합니다. tables.update
메서드는 전체 테이블 리소스를 바꾸기 때문에 tables.patch
메서드를 사용하는 것이 좋습니다.
Go
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Go 설정 안내를 따르세요. 자세한 내용은 BigQuery Go API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
자바
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 BigQuery Java API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Python
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 BigQuery Python API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Table.description 속성을 구성하고 Client.update_table()을 호출하여 업데이트를 API에 보냅니다.테이블의 만료 시간 업데이트
데이터세트 수준에서 기본 테이블 만료 시간을 설정하거나 테이블을 만들 때 테이블 만료 시간을 설정할 수 있습니다. 테이블 만료 시간을 '수명' 또는 TTL이라고도 합니다.
테이블이 만료되면 포함된 모든 데이터와 함께 테이블이 삭제됩니다. 필요한 경우 데이터 세트에 지정된 시간 이동 창 내에 만료된 테이블 삭제를 취소할 수 있습니다. 자세한 내용은 삭제된 테이블 복원을 참조하세요.
테이블을 만들 때 만료 시간을 설정하면 데이터 세트의 기본 테이블 만료 시간은 무시됩니다. 데이터 세트 수준에서 기본 테이블 만료 시간을 설정하지 않고 테이블을 만들 때 테이블 만료 시간을 설정하지 않으면, 테이블이 만료되지 않으므로 수동으로 삭제해야 합니다.
테이블이 생성된 후 언제라도 다음 방법을 사용하여 테이블의 만료 시간을 업데이트할 수 있습니다.
- Google Cloud 콘솔 사용
- 데이터 정의 언어(DDL)
ALTER TABLE
문 사용 - bq 명령줄 도구의
bq update
명령어 사용 tables.patch
API 메서드 호출- 클라이언트 라이브러리 사용
테이블의 만료 시간을 업데이트하려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔을 사용하여 테이블을 만들 때는 만료 시간을 추가할 수 없습니다. 테이블이 생성된 후 테이블 세부정보 페이지에서 테이블 만료 시간을 추가하거나 업데이트할 수 있습니다.
탐색기 패널에서 프로젝트와 데이터 세트를 펼친 후 테이블을 선택합니다.
세부정보 패널에서 세부정보를 클릭합니다.
테이블 정보 옆에 있는 연필 아이콘을 클릭합니다.
테이블 만료에서 날짜 지정을 선택합니다. 그런 다음 캘린더 위젯을 사용하여 만료일을 선택합니다.
업데이트를 클릭하여 저장합니다. 업데이트된 만료 시간이 테이블 정보 섹션에 나타납니다.
SQL
ALTER TABLE SET OPTIONS
문을 사용합니다.
다음 예시에서는 mytable
이라는 테이블의 만료 시간을 업데이트합니다.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 다음 문을 입력합니다.
ALTER TABLE mydataset.mytable SET OPTIONS ( -- Sets table expiration to timestamp 2025-02-03 12:34:56 expiration_timestamp = TIMESTAMP '2025-02-03 12:34:56');
실행을 클릭합니다.
쿼리를 실행하는 방법에 대한 자세한 내용은 대화형 쿼리 실행을 참조하세요.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
bq update
명령어를--expiration
플래그와 함께 실행합니다. 기본 프로젝트가 아닌 다른 프로젝트의 테이블을 업데이트하려면 프로젝트 ID를project_id:dataset
형식으로 데이터 세트 이름에 추가합니다.bq update \ --expiration integer \
project_id:dataset.table
다음을 바꿉니다.
integer
: 테이블의 기본 수명(초). 최솟값은 3,600초(1시간)입니다. 만료 시간은 현재 시간과 정수 값을 더한 값으로 계산됩니다.0
을 지정하면 테이블 만료 시간이 삭제되고 테이블이 만료되지 않습니다. 만료되지 않은 테이블은 수동으로 삭제해야 합니다.project_id
: 프로젝트 IDdataset
: 업데이트할 테이블이 포함된 데이터 세트의 이름table
: 업데이트할 테이블의 이름.
예를 들면 다음과 같습니다.
mydataset
데이터 세트에서mytable
테이블의 만료 시간을 5일(432,000초)로 업데이트하려면 다음 명령어를 입력합니다.mydataset
데이터 세트는 기본 프로젝트에 있습니다.bq update --expiration 432000 mydataset.mytable
mydataset
데이터 세트에서mytable
테이블의 만료 시간을 5일(432,000초)로 업데이트하려면 다음 명령어를 입력합니다.mydataset
데이터 세트는 기본 프로젝트가 아닌myotherproject
프로젝트에 있습니다.bq update --expiration 432000 myotherproject:mydataset.mytable
API
tables.patch
메서드를 호출하고 테이블 리소스의 expirationTime
속성을 사용하여 테이블 만료 시간을 업데이트합니다(밀리초 단위). tables.update
메서드는 전체 테이블 리소스를 바꾸기 때문에 tables.patch
메서드를 사용하는 것이 좋습니다.
Go
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Go 설정 안내를 따르세요. 자세한 내용은 BigQuery Go API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
자바
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 BigQuery Java API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Node.js
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 BigQuery Node.js API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Python
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 BigQuery Python API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Table.expires 속성을 구성하고 Client.update_table()을 호출하여 업데이트를 API로 보냅니다.데이터 세트의 기본 파티션 만료 시간을 업데이트하려면 다음 안내를 따르세요.
자바
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 BigQuery Java API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Python
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 BigQuery Python API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
테이블의 반올림 모드 업데이트
ALTER TABLE SET OPTIONS
DDL 문을 사용하여 테이블의 기본 반올림 모드를 업데이트할 수 있습니다.
다음 예시에서는 mytable
의 기본 반올림 모드를 ROUND_HALF_EVEN
으로 업데이트합니다.
ALTER TABLE mydataset.mytable SET OPTIONS ( default_rounding_mode = "ROUND_HALF_EVEN");
테이블에 NUMERIC
또는 BIGNUMERIC
필드를 추가하고 반올림 모드를 지정하지 않으면 반올림 모드가 테이블의 기본 반올림 모드로 자동 설정됩니다. 테이블의 기본 반올림 모드를 변경해도 기존 필드의 반올림 모드는 변경되지 않습니다.
테이블의 스키마 정의 업데이트
테이블의 스키마 정의 업데이트에 대한 자세한 내용은 테이블 스키마 수정을 참조하세요.
테이블 이름 바꾸기
테이블을 만든 후에 ALTER TABLE RENAME TO
문을 사용하여 테이블 이름을 바꿀 수 있습니다.
다음 예시에서는 mytable
이름을 mynewtable
로 바꿉니다.
ALTER TABLE mydataset.mytable RENAME TO mynewtable;
테이블 이름 바꾸기 제한사항
- 데이터 스트리밍이 있는 테이블의 이름을 바꾸려면 스트리밍을 중지하고 대기 중인 스트림을 커밋한 후 BigQuery에서 스트리밍이 사용 중이지 않음을 알릴 때까지 기다려야 합니다.
- 일반적으로 마지막 스트리밍 작업 후 5시간 이내에 테이블 이름을 바꿀 수 있지만 더 오래 걸릴 수 있습니다.
- 기존 테이블 ACL과 행 액세스 정책은 보존되지만 테이블 이름 변경 중에 수행된 테이블 ACL 및 행 액세스 정책 업데이트는 보존되지 않습니다.
- 동시에 테이블 이름을 바꾸고 해당 테이블에서 DML 문을 실행할 수는 없습니다.
- 테이블 이름을 변경하면 테이블의 모든 데이터 카탈로그 태그가 삭제됩니다.
- 외부 테이블의 이름을 바꿀 수 없습니다.
테이블 복사
이 섹션에서는 테이블의 전체 사본을 만드는 방법을 설명합니다. 다른 유형의 테이블 사본에 대한 자세한 내용은 테이블 클론과 테이블 스냅샷을 참조하세요.
다음 방법으로 테이블을 복사할 수 있습니다.
- Google Cloud 콘솔 사용하기
bq cp
명령어를 사용합니다.- 데이터 정의 언어(DDL)
CREATE TABLE COPY
문을 사용합니다. - jobs.insert API 메서드를 호출하고
copy
작업을 구성합니다. - 클라이언트 라이브러리를 사용합니다.
테이블 복사 제한사항
테이블 복사 작업에는 다음과 같은 제한사항이 적용됩니다.
- 테이블을 복사할 때 대상 테이블 이름은 테이블을 만들 때와 동일한 명명 규칙을 따라야 합니다.
- 테이블 복사본에는 복사 작업에 대한 BigQuery 제한이 적용됩니다.
- Google Cloud 콘솔에서는 한 번에 하나씩만 테이블 복사가 지원됩니다. 대상 데이터 세트의 기존 테이블을 덮어쓸 수 없습니다. 테이블 이름은 대상 데이터 세트 내에서 고유해야 합니다.
- 대상 테이블로 여러 소스 테이블 복사는 Google Cloud 콘솔에서 지원되지 않습니다.
API, bq 명령줄 도구, 클라이언트 라이브러리를 사용하여 대상 테이블로 여러 소스 테이블을 복사할 때는 모든 소스 테이블의 파티션 나누기 또는 클러스터링을 포함한 스키마가 동일해야 합니다.
열 삭제 또는 이름 변경과 같은 특정 테이블 스키마 업데이트로 인해 테이블의 스키마는 동일해 보이지만 내부 표현은 다를 수 있습니다. 이로 인해 테이블 복사 작업이
Maximum limit on diverging physical schemas reached
오류와 함께 실패할 수 있습니다. 이 경우CREATE TABLE LIKE
문이 소스 테이블의 스키마가 대상 테이블의 스키마와 정확하게 일치하도록 할 수 있습니다.BigQuery가 테이블을 복사하는 데 걸리는 시간은 기본 스토리지가 동적으로 관리되기 때문에 실행마다 크게 다를 수 있습니다.
소스 테이블보다 열이 많고 추가 열에 기본값이 포함된 대상 테이블로 소스 테이블을 복사하고 연결할 수 없습니다. 대신
INSERT destination_table SELECT * FROM source_table
을 실행하여 데이터를 복사할 수 있습니다.복사 작업으로 기존 테이블이 덮어쓰면 기존 테이블의 테이블 수준 액세스는 유지됩니다. 소스 테이블의 태그는 덮어쓴 테이블에 복사되지 않으며 기존 테이블의 태그는 유지됩니다. 하지만 리전 간에 테이블을 복사하면 기존 테이블의 태그가 삭제됩니다.
복사 작업으로 새 테이블이 생성되는 경우 새 테이블에 대한 테이블 수준 액세스는 새 테이블이 생성되는 데이터 세트의 액세스 정책에 따라 결정됩니다. 또한 태그가 소스 테이블에서 새 테이블로 복사됩니다.
여러 소스 테이블을 대상 테이블에 복사할 때 모든 소스 테이블에는 동일한 태그가 있어야 합니다.
필요한 역할
이 문서의 태스크를 수행하려면 다음 권한이 필요합니다.
테이블 및 파티션 복사 역할
테이블 및 파티션을 복사하는 데 필요한 권한을 얻으려면 관리자에게 소스 및 대상 데이터 세트에 대한 데이터 편집자(roles/bigquery.dataEditor
) IAM 역할을 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 테이블 및 파티션을 복사하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
테이블 및 파티션을 복사하려면 다음 권한이 필요합니다.
- 소스 및 대상 데이터 세트에 대한
bigquery.tables.getData
권한 - 소스 및 대상 데이터 세트에 대한
bigquery.tables.get
권한 - 대상 데이터 세트에 대한
bigquery.tables.create
권한 - 대상 데이터 세트에 대한
bigquery.tables.update
권한
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
복사 작업 실행 권한
복사 작업을 실행하는 데 필요한 권한을 얻으려면 관리자에게 소스 및 대상 데이터 세트에 대한 작업 사용자(roles/bigquery.jobUser
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 복사 작업 실행에 필요한 bigquery.jobs.create
권한이 포함되어 있습니다.
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
단일 소스 테이블 복사
다음 방법으로 단일 테이블을 복사할 수 있습니다.
- Google Cloud 콘솔 사용
- bq 명령줄 도구의
bq cp
명령어 사용 - 데이터 정의 언어(DDL)
CREATE TABLE COPY
문 사용 jobs.insert
API 메서드 호출,copy
작업 구성,sourceTable
속성 지정- 클라이언트 라이브러리 사용
Google Cloud 콘솔 및 CREATE TABLE COPY
문에서는 복사 작업 하나에 소스 테이블과 대상 테이블 각각 하나만 지원합니다. 대상 테이블 하나에 소스 파일 여러 개를 복사하려면 bq 명령줄 도구나 API를 사용해야 합니다.
단일 원본 테이블을 복사하는 방법:
콘솔
탐색기 패널에서 프로젝트와 데이터 세트를 펼친 후 테이블을 선택합니다.
세부정보 패널에서 테이블 복사를 클릭합니다.
테이블 복사 대화상자의 대상에서 다음을 수행합니다.
복사를 클릭하여 복사 작업을 시작합니다.
SQL
CREATE TABLE COPY
문을 사용하여 table1
이라는 테이블을 table1copy
라는 새 테이블에 복사합니다.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 다음 문을 입력합니다.
CREATE TABLE
myproject.mydataset.table1copy
COPYmyproject.mydataset.table1
;실행을 클릭합니다.
쿼리를 실행하는 방법에 대한 자세한 내용은 대화형 쿼리 실행을 참조하세요.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
bq cp
명령어를 실행합니다. 선택적 플래그를 사용하면 대상 테이블의 쓰기 처리를 제어할 수 있습니다.-a
또는--append_table
은 소스 테이블의 데이터를 대상 데이터 세트의 기존 테이블에 추가합니다.-f
또는--force
는 대상 데이터 세트의 기존 테이블을 덮어쓰며 확인 메시지를 표시하지 않습니다.-n
또는--no_clobber
는 테이블이 대상 데이터세트에 있으면Table 'project_id:dataset.table' already exists, skipping.
오류 메시지를 반환합니다.-n
을 지정하지 않으면 기본 동작으로 대상 테이블을 바꿀지 묻는 메시지가 표시됩니다.--destination_kms_key
는 대상 테이블을 암호화하는 데 사용되는 고객 관리 Cloud KMS 키입니다.
여기서는
--destination_kms_key
를 설명하지 않습니다. 자세한 내용은 Cloud Key Management Service 키로 데이터 보호를 참조하세요.소스 데이터 세트 또는 대상 데이터 세트가 기본 프로젝트가 아닌 다른 프로젝트에 있으면 프로젝트 ID를
project_id:dataset
형식으로 데이터 세트 이름에 추가합니다.(선택사항)
--location
플래그를 지정하고 값을 사용자 위치로 설정합니다.bq --location=location cp \ -a -f -n \
project_id:dataset.source_table
\project_id:dataset.destination_table
다음을 바꿉니다.
location
: 위치의 이름.--location
플래그는 선택사항입니다. 예를 들어 도쿄 리전에서 BigQuery를 사용한다면 플래그 값을asia-northeast1
로 설정할 수 있습니다..bigqueryrc
파일을 사용하여 위치 기본값을 설정할 수 있습니다.project_id
: 프로젝트 IDdataset
: 소스 또는 대상 데이터 세트의 이름source_table
: 복사할 테이블destination_table
: 대상 데이터 세트의 테이블 이름
예를 들면 다음과 같습니다.
mydataset.mytable
테이블을mydataset2.mytable2
테이블에 복사하려면 다음 명령어를 입력합니다. 두 데이터세트 모두 기본 프로젝트에 있고,bq cp mydataset.mytable mydataset2.mytable2
mydataset.mytable
테이블을 복사하고 이름이 같은 대상 테이블을 덮어쓰려면 다음 명령어를 입력합니다. 소스 데이터세트는 기본 프로젝트에 있고 대상 데이터 세트는myotherproject
프로젝트에 있습니다.-f
단축키를 사용하면 확인 메시지 없이 대상 테이블을 덮어쓸 수 있습니다.bq cp -f \ mydataset.mytable \ myotherproject:myotherdataset.mytable
mydataset.mytable
테이블을 복사하고 대상 데이터 세트에 이름이 같은 테이블이 있는 경우에 오류를 반환하려면 다음 명령어를 입력합니다. 소스 데이터세트는 기본 프로젝트에 있고 대상 데이터 세트는myotherproject
프로젝트에 있습니다.-n
단축키를 사용하면 이름이 같은 테이블을 덮어쓰지 않습니다.bq cp -n \ mydataset.mytable \ myotherproject:myotherdataset.mytable
mydataset.mytable
테이블을 복사하고 이름이 같은 대상 테이블에 데이터를 추가하려면 다음 명령어를 입력합니다. 소스 데이터 세트는 기본 프로젝트에 있고 대상 데이터 세트는myotherproject
프로젝트에 있습니다.- a
단축키를 사용하면 대상 테이블에 추가할 수 있습니다.bq cp -a mydataset.mytable myotherproject:myotherdataset.mytable
API
bigquery.jobs.insert
메서드를 호출하고 copy
작업을 구성하여 API를 통해 기존 테이블을 복사할 수 있습니다. 작업 리소스의 jobReference
섹션에 있는 location
속성에 사용자 위치를 지정합니다.
작업 구성에 다음 값을 지정해야 합니다.
"copy": { "sourceTable": { // Required "projectId": string, // Required "datasetId": string, // Required "tableId": string // Required }, "destinationTable": { // Required "projectId": string, // Required "datasetId": string, // Required "tableId": string // Required }, "createDisposition": string, // Optional "writeDisposition": string, // Optional },
여기서 sourceTable
은 복사할 테이블의 정보를 제공하고, destinationTable
은 새 테이블의 정보를 제공합니다. createDisposition
은 테이블이 없을 때 테이블 생성 여부를 지정하고, writeDisposition
은 기존 테이블 덮어쓰기 또는 기존 테이블에 추가 여부를 지정합니다.
C#
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 C# 설정 안내를 따르세요. 자세한 내용은 BigQuery C# API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Go
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Go 설정 안내를 따르세요. 자세한 내용은 BigQuery Go API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
자바
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 BigQuery Java API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Node.js
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 BigQuery Node.js API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
PHP
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 PHP 설정 안내를 따르세요. 자세한 내용은 BigQuery PHP API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Python
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 BigQuery Python API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
여러 소스 테이블 복사
다음 방법으로 대상 테이블에 여러 소스 테이블을 복사할 수 있습니다.
- bq 명령줄 도구의
bq cp
명령어 사용 jobs.insert
메서드 호출,copy
작업 구성,sourceTables
속성 지정- 클라이언트 라이브러리 사용
모든 소스 테이블은 스키마와 태그가 같아야 하며 대상 테이블은 하나만 허용됩니다.
소스 테이블은 쉼표로 구분된 목록으로 지정해야 합니다. 여러 소스 테이블을 복사할 때는 와일드 카드를 사용할 수 없습니다.
소스 테이블을 여러 개 복사하려면 다음 중 하나를 선택합니다.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
bq cp
명령어를 실행하고 소스 테이블 여러 개를 쉼표로 구분된 목록으로 포함합니다. 선택적 플래그를 사용하면 대상 테이블의 쓰기 처리를 제어할 수 있습니다.-a
또는--append_table
은 소스 테이블의 데이터를 대상 데이터 세트의 기존 테이블에 추가합니다.-f
또는--force
는 대상 데이터 세트의 기존 대상 테이블을 덮어쓰고 확인 메시지를 표시하지 않습니다.-n
또는--no_clobber
는 테이블이 대상 데이터 세트에 있으면Table 'project_id:dataset.table' already exists, skipping.
오류 메시지를 반환합니다.-n
을 지정하지 않으면 기본 동작으로 대상 테이블을 대체할지 묻는 메시지가 표시됩니다.--destination_kms_key
는 대상 테이블을 암호화하는 데 사용되는 고객 관리 Cloud Key Management Service 키입니다.
여기서는
--destination_kms_key
를 설명하지 않습니다. 자세한 내용은 Cloud Key Management Service 키로 데이터 보호를 참조하세요.소스 데이터 세트 또는 대상 데이터 세트가 기본 프로젝트가 아닌 다른 프로젝트에 있으면 프로젝트 ID를
project_id:dataset
형식으로 데이터 세트 이름에 추가합니다.(선택사항)
--location
플래그를 지정하고 값을 사용자 위치로 설정합니다.bq --location=location cp \ -a -f -n \
project_id:dataset.source_table
,project_id:dataset.source_table
\project_id:dataset.destination_table
다음을 바꿉니다.
location
: 위치의 이름.--location
플래그는 선택사항입니다. 예를 들어 도쿄 리전에서 BigQuery를 사용한다면 플래그 값을asia-northeast1
로 설정할 수 있습니다..bigqueryrc
파일을 사용하여 위치 기본값을 설정할 수 있습니다.project_id
: 프로젝트 IDdataset
: 소스 또는 대상 데이터 세트의 이름source_table
: 복사할 테이블destination_table
: 대상 데이터 세트의 테이블 이름
예를 들면 다음과 같습니다.
mydataset.mytable
테이블과mydataset.mytable2
테이블을mydataset2.tablecopy
테이블에 복사하려면 다음 명령어를 입력합니다. 데이터 세트 모두 기본 프로젝트에 있습니다.bq cp \ mydataset.mytable,mydataset.mytable2 \ mydataset2.tablecopy
mydataset.mytable
테이블과mydataset.mytable2
테이블을myotherdataset.mytable
테이블에 복사하고 이름이 같은 대상 테이블을 덮어쓰려면 다음 명령어를 입력합니다. 대상 데이터 세트는 기본 프로젝트가 아닌myotherproject
프로젝트에 있습니다.-f
단축키를 사용하면 확인 메시지 없이 대상 테이블을 덮어쓸 수 있습니다.bq cp -f \ mydataset.mytable,mydataset.mytable2 \ myotherproject:myotherdataset.mytable
myproject:mydataset.mytable
테이블과myproject:mydataset.mytable2
테이블을 복사하고 대상 데이터 세트에 이름이 같은 테이블이 있는 경우 오류를 반환하려면 다음 명령어를 입력합니다. 대상 데이터 세트는myotherproject
프로젝트에 있습니다.-n
단축키를 사용하면 이름이 같은 테이블을 덮어쓰지 않습니다.bq cp -n \ myproject:mydataset.mytable,myproject:mydataset.mytable2 \ myotherproject:myotherdataset.mytable
mydataset.mytable
테이블과mydataset.mytable2
테이블을 복사하고 이름이 같은 대상 테이블에 데이터를 추가하려면 다음 명령어를 입력합니다. 소스 데이터세트는 기본 프로젝트에 있고 대상 데이터 세트는myotherproject
프로젝트에 있습니다.-a
단축키를 사용하면 대상 테이블에 추가할 수 있습니다.bq cp -a \ mydataset.mytable,mydataset.mytable2 \ myotherproject:myotherdataset.mytable
API
API를 사용하여 테이블 여러 개를 복사하려면 jobs.insert
메서드를 호출하고, 테이블 copy
작업을 구성한 후 sourceTables
속성을 지정합니다.
작업 리소스의 jobReference
섹션에 있는 location
속성에 사용자 리전을 지정합니다.
Go
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Go 설정 안내를 따르세요. 자세한 내용은 BigQuery Go API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
자바
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 BigQuery Java API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Node.js
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 BigQuery Node.js API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Python
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 BigQuery Python API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
리전 간 테이블 복사
한 BigQuery 리전이나 멀티 리전에서 다른 리전으로 테이블, 테이블 스냅샷 또는 테이블 클론을 복사할 수 있습니다. 여기에는 고객 관리 Cloud KMS(CMEK)가 적용된 모든 테이블이 포함됩니다. 이렇게 하면 BigQuery 가격 책정에 따라 추가 요금이 발생합니다.
여러 리전 간에 테이블을 복사하려면 다음 옵션 중 하나를 선택합니다.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
bq cp \ -f -n \SOURCE_PROJECT:SOURCE_DATASET.SOURCE_TABLE
\DESTINATION_PROJECT:DESTINATION_DATASET.DESTINATION_TABLE
다음을 바꿉니다.
SOURCE_PROJECT
: 소스 프로젝트 ID. 소스 데이터 세트가 기본 프로젝트가 아닌 다른 프로젝트에 있으면 소스 데이터 세트 이름에 프로젝트 ID를 추가합니다.DESTINATION_PROJECT
: 대상 프로젝트 ID. 대상 데이터 세트가 기본 프로젝트가 아닌 다른 프로젝트에 있으면 대상 데이터 세트 이름에 프로젝트 ID를 추가합니다.SOURCE_DATASET
: 소스 데이터 세트의 이름DESTINATION_DATASET
: 대상 데이터 세트의 이름SOURCE_TABLE
: 복사할 테이블DESTINATION_TABLE
: 대상 데이터 세트의 테이블 이름예를 들면 다음과 같습니다.
us
멀티 리전의mydataset_us.mytable
테이블을eu
멀티 리전의mydataset_eu.mytable2
테이블에 복사하려면 다음 명령어를 입력합니다. 두 데이터세트 모두 기본 프로젝트에 있고,bq cp --sync=false mydataset_us.mytable mydataset_eu.mytable2
CMEK가 사용 설정된 테이블을 복사하려면 Cloud KMS를 사용하여 키를 만들고
bq cp
명령어에 키를 지정하거나 기본 CMEK가 구성된 대상 데이터 세트를 사용합니다. 다음 예시에서는bq cp
명령어에 대상 CMEK를 지정합니다.bq cp --destination_kms_key=projects/testing/locations/us/keyRings/us_key/cryptoKeys/eu_key mydataset_us.mytable mydataset_eu.mytable2
API
API를 사용하여 여러 지역에서 테이블을 복사하려면 jobs.insert
메서드를 호출하고 테이블 copy
작업을 구성합니다.
작업 리소스의 jobReference
섹션에 있는 location
속성에 사용자 리전을 지정합니다.
C#
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 C# 설정 안내를 따르세요. 자세한 내용은 BigQuery C# API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Go
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Go 설정 안내를 따르세요. 자세한 내용은 BigQuery Go API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
자바
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 BigQuery Java API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Node.js
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 BigQuery Node.js API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
PHP
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 PHP 설정 안내를 따르세요. 자세한 내용은 BigQuery PHP API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Python
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 BigQuery Python API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
제한사항
리전 간에 테이블을 복사하는 경우 다음과 같은 제한사항이 적용됩니다.
- Google Cloud 콘솔이나
TABLE COPY DDL
문을 사용하여 테이블을 복사할 수 없습니다. - 소스 테이블에 정책 태그가 있으면 테이블을 복사할 수 없습니다.
- 소스 테이블이 실제 TiB 20개를 초과하는 경우 테이블을 복사할 수 없습니다. 소스 테이블 실제 크기는 테이블 정보 가져오기를 참고하세요.
- 테이블과 연결된 IAM 정책은 복사할 수 없습니다. 복사가 완료된 후 대상에 동일한 정책을 적용할 수 있습니다.
- 복사 작업이 기존 테이블을 덮어쓰면 기존 테이블의 태그가 삭제됩니다.
- 여러 소스 테이블을 단일 대상 테이블에 복사할 수는 없습니다.
- 추가 모드에서는 테이블을 복사할 수 없습니다.
- 시간 이동 정보는 대상 리전에 복사되지 않습니다.
- 테이블 클론 또는 스냅샷을 새 리전으로 복사하면 테이블의 전체 사본이 생성됩니다. 이로 인해 추가 스토리지 비용이 발생합니다.
현재 할당량 사용량 보기
INFORMATION_SCHEMA
쿼리를 실행하여 지정된 기간 동안 실행된 작업에 대한 메타데이터를 확인하여 쿼리, 로드, 추출, 복사 작업의 현재 사용량을 볼 수 있습니다. 현재 사용량을 할당량 한도와 비교하여 특정 유형 작업의 할당량 사용량을 결정할 수 있습니다. 다음 예시 쿼리는 INFORMATION_SCHEMA.JOBS
뷰를 사용하여 프로젝트별로 쿼리, 로드, 추출, 복사 작업 수를 나열합니다.
SELECT sum(case when job_type="QUERY" then 1 else 0 end) as QRY_CNT, sum(case when job_type="LOAD" then 1 else 0 end) as LOAD_CNT, sum(case when job_type="EXTRACT" then 1 else 0 end) as EXT_CNT, sum(case when job_type="COPY" then 1 else 0 end) as CPY_CNT FROM `region-eu`.INFORMATION_SCHEMA.JOBS_BY_PROJECT WHERE date(creation_time)= CURRENT_DATE()
복사 작업의 할당량 한도를 보려면 할당량 및 한도 - 복사 작업을 참조하세요.
테이블 삭제
다음 방법으로 테이블을 삭제할 수 있습니다.
- Google Cloud 콘솔 사용
- 데이터 정의 언어(DDL)
DROP TABLE
문 사용 - bq 명령줄 도구
bq rm
명령어 사용 tables.delete
API 메서드 호출- 클라이언트 라이브러리 사용
데이터 세트의 모든 테이블을 삭제하려면 데이터 세트를 삭제합니다.
테이블을 삭제하면 테이블의 데이터도 모두 삭제됩니다. 지정된 기간이 경과한 후 테이블을 자동으로 삭제하려면 데이터 세트의 기본 테이블 만료 시간을 설정하거나 테이블을 만들 때 만료 시간을 설정합니다.
테이블을 삭제하면 이 테이블과 연결된 권한도 삭제됩니다. 삭제된 테이블을 다시 만들 때는 이전에 연결된 모든 액세스 권한을 수동으로 다시 구성해야 합니다.
필요한 역할
테이블을 삭제하는 데 필요한 권한을 얻으려면 관리자에게 데이터 세트에 대한 데이터 편집자(roles/bigquery.dataEditor
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 테이블을 삭제하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
테이블을 삭제하려면 다음 권한이 필요합니다.
-
bigquery.tables.delete
-
bigquery.tables.get
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
테이블 삭제
테이블을 삭제하는 방법:
콘솔
탐색기 패널에서 프로젝트와 데이터 세트를 펼친 후 테이블을 선택합니다.
세부정보 패널에서 테이블 삭제를 클릭합니다.
대화상자에
"delete"
를 입력하고 삭제를 클릭하여 확인합니다.
SQL
DROP TABLE
문을 사용합니다.
다음 예시에서는 mytable
이라는 테이블을 삭제합니다.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 다음 문을 입력합니다.
DROP TABLE mydataset.mytable;
실행을 클릭합니다.
쿼리를 실행하는 방법에 대한 자세한 내용은 대화형 쿼리 실행을 참조하세요.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
bq rm
명령어를--table
플래그(또는-t
단축키)와 함께 사용하여 테이블을 삭제합니다. bq 명령줄 도구를 사용하여 테이블을 삭제할 때 작업을 확인해야 합니다.--force
플래그(또는-f
단축키)를 사용하면 확인 절차를 건너뛸 수 있습니다.테이블이 기본 프로젝트가 아닌 다른 프로젝트의 데이터 세트에 있으면 프로젝트 ID를
project_id:dataset
형식으로 데이터 세트 이름에 추가합니다.bq rm \ -f \ -t \ project_id:dataset.table
다음을 바꿉니다.
project_id
: 프로젝트 IDdataset
: 테이블이 포함된 데이터 세트의 이름table
: 삭제할 테이블의 이름
예를 들면 다음과 같습니다.
mydataset
데이터 세트에서mytable
테이블을 삭제하려면 다음 명령어를 입력합니다.mydataset
데이터 세트는 기본 프로젝트에 있습니다.bq rm -t mydataset.mytable
mydataset
데이터 세트에서mytable
테이블을 삭제하려면 다음 명령어를 입력합니다.mydataset
데이터 세트는 기본 프로젝트가 아닌myotherproject
프로젝트에 있습니다.bq rm -t myotherproject:mydataset.mytable
mydataset
데이터 세트에서mytable
테이블을 삭제하려면 다음 명령어를 입력합니다.mydataset
데이터 세트는 기본 프로젝트에 있습니다. 이 명령어는-f
단축키를 사용하여 확인을 건너뜁니다.bq rm -f -t mydataset.mytable
API
tables.delete
API 메서드를 호출하고 tableId
매개변수를 사용하여 삭제할 테이블을 지정합니다.
C#
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 C# 설정 안내를 따르세요. 자세한 내용은 BigQuery C# API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Go
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Go 설정 안내를 따르세요. 자세한 내용은 BigQuery Go API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
자바
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 BigQuery Java API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Node.js
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 BigQuery Node.js API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
PHP
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 PHP 설정 안내를 따르세요. 자세한 내용은 BigQuery PHP API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Python
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 BigQuery Python API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Ruby
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Ruby 설정 안내를 따르세요. 자세한 내용은 BigQuery Ruby API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
삭제된 테이블 복원
테이블 만료 시간으로 인한 명시적 삭제 및 암시적 삭제를 포함하여 데이터 세트에 지정된 시간 이동 창 내에 테이블 삭제를 취소할 수 있습니다. 시간 이동 기간을 구성할 수 있습니다. 전체 데이터 세트의 삭제를 취소하려면 데이터 세트 삭제 취소를 참고하세요.
시간 이동 기간은 2~7일입니다. 시간 이동 기간이 지나면 BigQuery는 삭제된 데이터가 7일 동안 자동으로 보관되는 장애 안전 기간을 제공합니다. 페일세이프 기간이 지나면 지원 티켓 열기를 비롯한 그 어떤 방법으로도 테이블의 삭제를 취소할 수 없습니다.
이전 데이터에서 테이블을 복원하면 소스 테이블의 태그가 대상 테이블에 복사되지 않습니다.
@<time>
시간 데코레이터를 사용하여 테이블을 새 테이블에 복사하여 삭제되었지만 아직 시간 이동 창 내의 테이블을 복원할 수 있습니다.
테이블을 복사하려면 bq 명령줄 도구 또는 클라이언트 라이브러리를 사용합니다.
콘솔
Google Cloud 콘솔을 사용하여 테이블 삭제를 취소할 수 없습니다.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
테이블을 복원하려면 먼저 테이블이 있었던 시점의 UNIX 타임스탬프(밀리초 단위)를 확인합니다. Linux
date
명령어를 사용하여 일반 타임스탬프 값에서 Unix 타임스탬프를 생성할 수 있습니다.date -d '2023-08-04 16:00:34.456789Z' +%s000
그런 다음
@<time>
시간 여행 데코레이터와 함께bq copy
명령어를 사용하여 테이블 복사 작업을 실행합니다.예를 들어
1418864998000
시점의mydataset.mytable
테이블을 새 테이블인mydataset.newtable
로 복사하려면 다음 명령어를 입력합니다.bq cp mydataset.mytable@1418864998000 mydataset.newtable
(선택사항)
--location
플래그를 지정하고 값을 사용자 위치로 설정합니다.상대 오프셋을 지정할 수도 있습니다. 다음 예시에서는 1시간 전의 테이블 버전을 복사합니다.
bq cp mydataset.mytable@-3600000 mydataset.newtable
자세한 내용은 특정 시점의 테이블 복원을 참조하세요.
Go
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Go 설정 안내를 따르세요. 자세한 내용은 BigQuery Go API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
자바
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 BigQuery Java API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Node.js
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 BigQuery Node.js API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Python
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 BigQuery Python API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
시간 이동 기간에 허용되는 것보다 나중에 테이블을 복원해야 할 것으로 예상되는 경우, 테이블의 테이블 스냅샷을 만듭니다. 자세한 내용은 테이블 스냅샷을 참조하세요.
테이블 보안
BigQuery에서 테이블에 대한 액세스를 제어하려면 테이블 액세스 제어 소개를 참조하세요.
다음 단계
- 테이블 만들기 및 사용에 대한 자세한 내용은 테이블 만들기 및 사용을 참조하세요.
- 데이터 처리에 대한 자세한 내용은 테이블 데이터 작업을 참조하세요.
- 테이블 스키마 지정에 대한 자세한 내용은 스키마 지정을 참조하세요.
- 테이블 스키마 수정에 대한 자세한 내용은 테이블 스키마 수정을 참조하세요.
- 데이터 세트에 대한 자세한 내용은 데이터 세트 소개를 참조하세요.
- 뷰에 대한 자세한 내용은 뷰 소개를 참조하세요.