테이블 스냅샷 메타데이터 업데이트
이 문서에서는 Google Cloud Console, 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
: 테이블 스냅샷에 대한 액세스 권한을 부여할 주 구성원입니다.