테이블 스냅샷 메타데이터 업데이트

이 문서에서는 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
테이블 스냅샷

제한사항

테이블 스냅샷의 메타데이터를 업데이트할 수 있지만 테이블 스냅샷 데이터가 읽기 전용이기 때문에 해당 데이터는 업데이트할 수 없습니다. 테이블 스냅샷의 데이터를 업데이트하려면 먼저 테이블 스냅샷을 표준 테이블로 복원한 후 표준 테이블의 데이터를 업데이트해야 합니다. 자세한 내용은 테이블 스냅샷 복원을 참조하세요.

테이블 스냅샷의 메타데이터 업데이트

표준 테이블의 메타데이터를 변경할 때와 같은 방법으로 테이블 스냅샷의 설명, 만료 및 액세스 정책을 변경할 수 있습니다. 다음 섹션에는 몇 가지 예시가 제공되어 있습니다.

설명 업데이트

다음 옵션 중 하나를 사용하여 테이블 스냅샷의 설명을 변경할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  2. 탐색기 창에서 업데이트할 테이블 스냅샷의 프로젝트 및 데이터 세트 노드를 확장합니다.

  3. 테이블 스냅샷의 이름을 클릭합니다.

  4. 표시된 스냅샷 창에서 세부정보 탭을 클릭한 후 세부정보 수정을 클릭합니다.

  5. 설명 필드에서 테이블 스냅샷의 설명을 추가하거나 업데이트합니다.

  6. 저장을 클릭합니다.

bq

Cloud Shell에 다음 명령어를 입력합니다.

Cloud Shell로 이동

bq update \
--description="DESCRIPTION" \
PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME

다음을 바꿉니다.

  • DESCRIPTION: 스냅샷을 설명하는 텍스트입니다. 예를 들면 Snapshot after table schema change X.입니다.
  • PROJECT_ID: 스냅샷이 포함된 프로젝트의 프로젝트 ID
  • DATASET_NAME: 스냅샷이 포함된 데이터 세트의 이름
  • SNAPSHOT_NAME: 스냅샷 이름

API

다음 매개변수를 사용하여 tables.patch 메서드를 호출합니다.

매개변수
projectId 스냅샷이 포함된 프로젝트의 프로젝트 ID입니다.
datasetId 스냅샷이 포함된 데이터 세트의 이름입니다.
tableId 스냅샷의 이름입니다.
요청 본문 description 필드 스냅샷을 설명하는 텍스트입니다. 예를 들면 Snapshot after table schema change X입니다.

tables.update 메서드가 전체 Table 리소스를 바꾸기 때문에 tables.update 메서드보다는 tables.patch 메서드를 사용하는 것이 좋습니다.

만료 업데이트

다음 옵션 중 하나를 사용하여 테이블 스냅샷의 만료 시간을 변경할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  2. 탐색기 창에서 업데이트할 테이블 스냅샷의 프로젝트 및 데이터 세트 노드를 확장합니다.

  3. 테이블 스냅샷의 이름을 클릭합니다.

  4. 표시된 스냅샷 창에서 세부정보 탭을 클릭한 후 세부정보 수정을 클릭합니다.

  5. 만료 시간 필드에 테이블 스냅샷의 새로운 만료 시간을 입력합니다.

  6. 저장을 클릭합니다.

bq

Cloud Shell에 다음 명령어를 입력합니다.

Cloud Shell로 이동

bq update \
--expiration=EXPIRATION_TIME \
PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME

다음을 바꿉니다.

  • EXPIRATION_TIME: 현재 시간부터 만료 시간까지의 초 수입니다.
  • PROJECT_ID: 스냅샷이 포함된 프로젝트의 프로젝트 ID
  • DATASET_NAME: 스냅샷이 포함된 데이터 세트의 이름
  • SNAPSHOT_NAME: 스냅샷 이름

API

다음 매개변수를 사용하여 tables.patch 메서드를 호출합니다.

매개변수
projectId 스냅샷이 포함된 프로젝트의 프로젝트 ID입니다.
datasetId 스냅샷이 포함된 데이터 세트의 이름입니다.
tableId 스냅샷의 이름입니다.
요청 본문 expirationTime 필드 스냅샷이 만료되는 시간(에포크 이후의 밀리초 단위 경과 시간)입니다.

tables.update 메서드가 전체 Table 리소스를 바꾸기 때문에 tables.update 메서드보다는 tables.patch 메서드를 사용하는 것이 좋습니다.

액세스 업데이트

다음 옵션 중 하나를 사용하여 테이블 스냅샷의 데이터를 볼 수 있는 액세스 권한을 사용자에게 부여할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  2. 탐색기 창에서 업데이트할 테이블 스냅샷의 프로젝트 및 데이터 세트 노드를 확장합니다.

  3. 테이블 스냅샷 이름을 클릭합니다.

  4. 표시된 스냅샷 창에서 공유를 클릭한 후 주 구성원 추가를 클릭합니다.

  5. 표시된 주 구성원 추가 창에서 테이블 스냅샷에 대해 액세스 권한을 부여할 주 구성원의 식별자를 입력합니다.

  6. 역할 선택 드롭다운에서 BigQuery, BigQuery 데이터 뷰어를 차례로 선택합니다.

  7. 저장을 클릭합니다.

bq

Cloud Shell에 다음 명령어를 입력합니다.

Cloud Shell로 이동

bq add-iam-policy-binding \
    --member="user:PRINCIPAL" \
    --role="roles/bigquery.dataViewer" \
    PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME

다음을 바꿉니다.

  • PRINCIPAL: 테이블 스냅샷에 대한 액세스 권한을 부여할 주 구성원입니다.
  • PROJECT_ID: 스냅샷이 포함된 프로젝트의 프로젝트 ID
  • DATASET_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: 스냅샷이 포함된 프로젝트의 프로젝트 ID
  • DATASET_NAME: 스냅샷이 포함된 데이터 세트의 이름
  • SNAPSHOT_NAME: 스냅샷의 이름
  • PRINCIPAL: 테이블 스냅샷에 대한 액세스 권한을 부여할 주 구성원입니다.

다음 단계