테이블 스냅샷 메타데이터 업데이트
이 문서에서는 Google Cloud 콘솔, bq update 명령어, tables.patch API를 사용하여 테이블 스냅샷에 대해 설명, 만료일 또는 액세스 정책을 업데이트하는 방법을 설명합니다.
이 문서는 BigQuery의 테이블 및 테이블 스냅샷에 익숙한 사용자를 대상으로 합니다.
권한 및 역할
이 섹션에서는 테이블 스냅샷에 대해 메타데이터를 업데이트하기 위해 필요한 Identity and Access Management(IAM) 권한 및 이러한 권한을 부여하는 사전 정의된 IAM 역할에 대해 설명합니다.
권한
테이블 스냅샷의 메타데이터를 업데이트하려면 다음 권한이 필요합니다.
| 권한 | 리소스 |
|---|---|
bigquery.tables.update
|
테이블 스냅샷 |
역할
필요한 권한을 제공하는 사전 정의된 BigQuery 역할은 다음과 같습니다.
| 역할 | 리소스 |
|---|---|
다음 중 하나인 경우:bigquery.dataEditorbigquery.dataOwnerbiguqery.admin
|
테이블 스냅샷 |
제한사항
테이블 스냅샷의 메타데이터를 업데이트할 수 있지만 테이블 스냅샷 데이터가 읽기 전용이기 때문에 해당 데이터는 업데이트할 수 없습니다. 테이블 스냅샷의 데이터를 업데이트하려면 먼저 테이블 스냅샷을 표준 테이블로 복원한 후 표준 테이블의 데이터를 업데이트해야 합니다. 자세한 내용은 테이블 스냅샷 복원을 참조하세요.
테이블 스냅샷의 메타데이터 업데이트
표준 테이블의 메타데이터를 변경할 때와 같은 방법으로 테이블 스냅샷의 설명, 만료 및 액세스 정책을 변경할 수 있습니다. 다음 섹션에는 몇 가지 예시가 제공되어 있습니다.
설명 업데이트
다음 옵션 중 하나를 사용하여 테이블 스냅샷의 설명을 변경할 수 있습니다.
콘솔
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
왼쪽 창에서 탐색기를 클릭합니다.

왼쪽 창이 표시되지 않으면 왼쪽 창 펼치기 를 클릭하여 창을 엽니다.
탐색기 창에서 프로젝트를 펼치고 데이터 세트를 클릭한 후 테이블 스냅샷이 있는 데이터 세트를 클릭합니다.
개요 > 테이블을 클릭한 후 업데이트하려는 테이블 스냅샷의 이름을 클릭합니다.
세부정보 탭으로 이동한 후 세부정보 수정 을 클릭합니다.
설명 필드에서 테이블 스냅샷의 설명을 추가하거나 업데이트합니다.
저장을 클릭합니다.
bq
Cloud Shell에 다음 명령어를 입력합니다.
bq update \ --description="DESCRIPTION" \ PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME
다음을 바꿉니다.
DESCRIPTION: 스냅샷을 설명하는 텍스트입니다. 예를 들면Snapshot after table schema change X.입니다.PROJECT_ID: 스냅샷이 포함된 프로젝트의 프로젝트 IDDATASET_NAME: 스냅샷이 포함된 데이터 세트의 이름SNAPSHOT_NAME: 스냅샷 이름
API
다음 매개변수를 사용하여 tables.patch 메서드를 호출합니다.
| 매개변수 | 값 |
|---|---|
projectId |
스냅샷이 포함된 프로젝트의 프로젝트 ID입니다. |
datasetId |
스냅샷이 포함된 데이터 세트의 이름입니다. |
tableId |
스냅샷의 이름입니다. |
요청 본문 description 필드 |
스냅샷을 설명하는 텍스트입니다. 예를 들면 Snapshot after table schema change X입니다. |
tables.update 메서드가 전체 Table 리소스를 바꾸기 때문에 tables.update 메서드보다는 tables.patch 메서드를 사용하는 것이 좋습니다.
만료 업데이트
다음 옵션 중 하나를 사용하여 테이블 스냅샷의 만료 시간을 변경할 수 있습니다.
콘솔
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
왼쪽 창에서 탐색기를 클릭합니다.

탐색기 창에서 프로젝트를 펼치고 데이터 세트를 클릭한 후 테이블 스냅샷이 있는 데이터 세트를 클릭합니다.
개요 > 테이블을 클릭한 후 업데이트하려는 테이블 스냅샷의 이름을 클릭합니다.
세부정보 탭으로 이동한 후 세부정보 수정 을 클릭합니다.
만료 시간 필드에 테이블 스냅샷의 새로운 만료 시간을 입력합니다.
저장을 클릭합니다.
bq
Cloud Shell에 다음 명령어를 입력합니다.
bq update \ --expiration=EXPIRATION_TIME \ PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME
다음을 바꿉니다.
EXPIRATION_TIME: 현재 시간부터 만료 시간까지의 초 수입니다.PROJECT_ID: 스냅샷이 포함된 프로젝트의 프로젝트 IDDATASET_NAME: 스냅샷이 포함된 데이터 세트의 이름SNAPSHOT_NAME: 스냅샷 이름
API
다음 매개변수를 사용하여 tables.patch 메서드를 호출합니다.
| 매개변수 | 값 |
|---|---|
projectId |
스냅샷이 포함된 프로젝트의 프로젝트 ID입니다. |
datasetId |
스냅샷이 포함된 데이터 세트의 이름입니다. |
tableId |
스냅샷의 이름입니다. |
요청 본문 expirationTime 필드 |
스냅샷이 만료되는 시간(에포크 이후의 밀리초 단위 경과 시간)입니다. |
tables.update 메서드가 전체 Table 리소스를 바꾸기 때문에 tables.update 메서드보다는 tables.patch 메서드를 사용하는 것이 좋습니다.
액세스 업데이트
다음 옵션 중 하나를 사용하여 테이블 스냅샷의 데이터를 볼 수 있는 액세스 권한을 사용자에게 부여할 수 있습니다.
콘솔
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
왼쪽 창에서 탐색기를 클릭합니다.

탐색기 창에서 프로젝트를 펼치고 데이터 세트를 클릭한 후 테이블 스냅샷이 있는 데이터 세트를 클릭합니다.
**개요 > 테이블** 을 클릭한 후 공유하려는 테이블 스냅샷의 이름을 클릭합니다.
표시된 스냅샷 창에서 공유를 클릭한 후 주 구성원을 클릭합니다.
표시된 주 구성원 추가 창에서 테이블 스냅샷에 대해 액세스 권한을 부여할 주 구성원의 식별자를 입력합니다.
역할 선택 드롭다운에서 BigQuery, BigQuery 데이터 뷰어를 차례로 선택합니다.
저장을 클릭합니다.
bq
Cloud Shell에 다음 명령어를 입력합니다.
bq add-iam-policy-binding \ --member="user:PRINCIPAL" \ --role="roles/bigquery.dataViewer" \ PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME
다음을 바꿉니다.
PRINCIPAL: 테이블 스냅샷에 대한 액세스 권한을 부여할 주 구성원 입니다.PROJECT_ID: 스냅샷이 포함된 프로젝트의 프로젝트 IDDATASET_NAME: 스냅샷이 포함된 데이터 세트의 이름SNAPSHOT_NAME: 스냅샷 이름
API
다음 매개변수를 사용하여 tables.setIamPolicy 메서드를 호출합니다.
| 매개변수 | 값 |
|---|---|
Resource |
projects/PROJECT_ID/datasets/DATASET_NAME/tables/SNAPSHOT_NAME |
| 요청 본문 | { "policy": { "bindings": [ { "members": [ "user:PRINCIPAL" ], "role": "roles/bigquery.dataViewer" } ] } } |
다음을 바꿉니다.
PROJECT_ID: 스냅샷이 포함된 프로젝트의 프로젝트 IDDATASET_NAME: 스냅샷이 포함된 데이터 세트의 이름SNAPSHOT_NAME: 스냅샷 이름PRINCIPAL: 테이블 스냅샷에 대한 액세스 권한을 부여할 주 구성원입니다.