테이블 스냅샷 메타데이터 업데이트
이 문서에서는 Google Cloud 콘솔, bq update
명령어, tables.patch
API를 사용하여 테이블 스냅샷에 대해 설명, 만료일 또는 액세스 정책을 업데이트하는 방법을 설명합니다.
이 문서는 BigQuery의 테이블 및 테이블 스냅샷에 익숙한 사용자를 대상으로 합니다.
권한 및 역할
이 섹션에서는 테이블 스냅샷에 대해 메타데이터를 업데이트하기 위해 필요한 Identity and Access Management(IAM) 권한 및 이러한 권한을 부여하는 사전 정의된 IAM 역할에 대해 설명합니다.
권한
테이블 스냅샷의 메타데이터를 업데이트하려면 다음 권한이 필요합니다.
권한 | 리소스 |
---|---|
bigquery.tables.update
|
테이블 스냅샷 |
역할
필요한 권한을 제공하는 사전 정의된 BigQuery 역할은 다음과 같습니다.
역할 | 리소스 |
---|---|
다음 중 하나인 경우:bigquery.dataEditor bigquery.dataOwner biguqery.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
: 테이블 스냅샷에 대한 액세스 권한을 부여할 주 구성원입니다.