테이블 스냅샷 나열

이 문서에서는 INFORMATION_SCHEMA.TABLE_SNAPSHOTS 테이블 쿼리, bq ls 명령어 사용, tables.list API 호출을 통해 Google Cloud 콘솔에서 BigQuery 데이터 세트의 테이블 스냅샷 목록을 가져오는 방법을 설명합니다. 또한 INFORMATION_SCHEMA.TABLE_SNAPSHOTS 테이블을 쿼리하여 지정된 기본 테이블의 모든 테이블 스냅샷을 나열하는 방법을 설명합니다. 이 문서는 BigQuery 테이블테이블 스냅샷에 익숙한 사용자를 대상으로 합니다.

권한 및 역할

이 섹션에서는 데이터 세트의 테이블 스냅샷을 나열하는 데 필요한 Identity and Access Management(IAM) 권한과 이러한 권한을 부여하는 사전 정의된 IAM 역할에 대해 설명합니다. 테이블 스냅샷을 나열하는 데 필요한 권한과 역할은 다른 유형의 테이블을 나열하는 데 필요한 권한과 역할과 동일합니다.

권한

데이터 세트의 테이블 스냅샷을 나열하려면 다음 권한이 필요합니다.

권한 리소스
bigquery.tables.list 테이블 스냅샷이 포함된 데이터 세트입니다.

역할

필요한 권한을 제공하는 사전 정의된 BigQuery 역할은 다음과 같습니다.

역할 리소스
다음 중 하나인 경우:

bigquery.dataUser
bigquery.dataViewer
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
테이블 스냅샷이 포함된 데이터 세트입니다.

데이터 세트의 테이블 스냅샷 나열

데이터 세트의 테이블 스냅샷 목록을 가져오는 것은 다른 테이블 유형을 나열하는 것과 비슷합니다. 테이블 스냅샷에는 SNAPSHOT 유형이 포함됩니다.

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

콘솔

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

    BigQuery로 이동

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

  3. 데이터 세트에서 해당 아이콘으로 테이블 스냅샷을 식별할 수 있습니다.

    테이블 스냅샷 아이콘

SQL

INFORMATION_SCHEMA.TABLE_SNAPSHOTS를 쿼리합니다.

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

    BigQuery로 이동

  2. 쿼리 편집기에서 다음 문을 입력합니다.

    SELECT
      *
    FROM
      PROJECT_ID.DATASET_NAME.INFORMATION_SCHEMA.TABLE_SNAPSHOTS;
    

    다음을 바꿉니다.

    • PROJECT_ID: 나열할 스냅샷이 포함된 프로젝트의 프로젝트 ID입니다.
    • DATASET_NAME: 나열할 스냅샷이 포함된 데이터 세트의 이름입니다.

  3. 실행을 클릭합니다.

쿼리를 실행하는 방법에 대한 자세한 내용은 대화형 쿼리 실행을 참조하세요.

결과는 다음과 유사합니다.

+---------------+----------------+------------------+--------------------+-------------------+-----------------+-----------------------------+
| table_catalog | table_schema   | table_name       | base_table_catalog | base_table_schema | base_table_name | snapshot_time               |
+---------------+----------------+------------------+--------------------+-------------------+-----------------+-----------------------------+
| myproject     | mydataset      | mysnapshot       | basetableproject   | basetabledataset           | basetable           | 2021-04-16 14:05:27.519 UTC |
+---------------+----------------+------------------+--------------------+-------------------+-----------------+-----------------------------+

bq

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

Cloud Shell로 이동

bq ls \
PROJECT_ID:DATASET_NAME

다음을 바꿉니다.

  • PROJECT_ID: 나열할 스냅샷이 포함된 프로젝트의 프로젝트 ID입니다.
  • DATASET_NAME: 나열할 스냅샷이 포함된 데이터 세트의 이름입니다.

결과는 다음과 유사합니다.

+-------------------------+--------+---------------------+-------------------+
|         tableId         |  Type  |       Labels        | Time Partitioning |
+-------------------------+--------+---------------------+-------------------+
| mysnapshot              |SNAPSHOT|                     |                   |
+-------------------------+--------+---------------------+-------------------+

API

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

매개변수
projectId 나열할 스냅샷이 포함된 프로젝트의 프로젝트 ID입니다.
datasetId 나열할 스냅샷이 포함된 데이터 세트의 이름입니다.

지정된 기본 테이블의 테이블 스냅샷 나열

INFORMATION_SCHEMA.TABLE_SNAPSHOTS 뷰를 쿼리하여 지정된 기본 테이블의 테이블 스냅샷을 나열할 수 있습니다.

SELECT
  *
FROM
  PROJECT_ID.DATASET_NAME.INFORMATION_SCHEMA.TABLE_SNAPSHOTS
WHERE
  base_table_name = 'books';
  

다음을 바꿉니다.

  • PROJECT_ID: 나열할 스냅샷이 포함된 프로젝트의 프로젝트 ID입니다.
  • DATASET_NAME: 나열할 스냅샷이 포함된 데이터 세트의 이름입니다.

다음 단계