INFORMATION_SCHEMA를 사용하여 보기 메타데이터 가져오기

INFORMATION_SCHEMA는 데이터세트, 테이블, 보기의 메타데이터에 액세스할 수 있는 일련의 보기입니다.

INFORMATION_SCHEMA.VIEWS 뷰를 쿼리하여 데이터세트의 뷰에 대한 메타데이터를 검색할 수 있습니다.

필수 권한

보기에 대한 정보를 가져오려면 최소한 bigquery.tables.get 권한이 부여되어 있어야 합니다. 아래의 사전 정의된 Cloud IAM 역할에는 bigquery.tables.get 권한이 있습니다.

  • bigquery.metadataViewer
  • bigquery.dataViewer
  • bigquery.dataOwner
  • bigquery.dataEditor
  • bigquery.admin

또한 사용자에게 bigquery.datasets.create 권한이 있으면, 해당 사용자가 데이터세트를 만들 때 이에 대한 bigquery.dataOwner 액세스 권한이 부여됩니다. bigquery.dataOwner 액세스 권한은 사용자에게 데이터세트의 보기에 대한 정보를 가져올 수 있는 권한을 제공합니다.

BigQuery의 Cloud IAM 역할 및 권한에 대한 자세한 내용은 액세스 제어를 참조하세요.

VIEWS 보기

INFORMATION_SCHEMA.VIEWS 뷰를 쿼리하면 쿼리 결과에 데이터세트의 각 뷰에 대한 행이 하나씩 포함됩니다.

INFORMATION_SCHEMA.VIEWS 보기에 대한 쿼리에는 데이터세트 한정자가 있어야 합니다. 쿼리를 제출하는 사용자는 보기가 포함된 데이터세트에 액세스할 수 있어야 합니다.

INFORMATION_SCHEMA.VIEWS 뷰에는 다음과 같은 스키마가 있습니다.

열 이름 데이터 유형
TABLE_CATALOG STRING 데이터세트가 포함된 프로젝트 이름
TABLE_SCHEMA STRING 뷰가 포함된 데이터세트 이름(또는 데이터세트 id라고 함)
TABLE_NAME STRING 뷰 이름(또는 테이블 id라고 함)
VIEW_DEFINITION STRING 뷰를 정의하는 SQL 쿼리
CHECK_OPTION STRING 반환되는 값은 항상 NULL
USE_STANDARD_SQL STRING 보기가 표준 SQL 쿼리를 사용하여 생성된 경우 YES, useLegacySqltrue로 설정된 경우 NO

테이블 및 보기 속성에 대한 자세한 내용은 REST API 문서의 테이블 리소스 페이지를 참조하세요.

예시

예시 1

다음 예시에서는 나중에 사용할 수 있도록 예약된 check_option을 제외하고 INFORMATION_SCHEMA.VIEWS 보기에서 모든 열을 검색합니다. 반환되는 메타데이터는 기본 프로젝트인 myprojectmydataset에 있는 모든 보기의 메타데이터입니다.

INFORMATION_SCHEMA.VIEWS 보기에 대한 쿼리에는 데이터세트 한정자가 있어야 합니다. 쿼리를 제출하는 사용자는 보기가 포함된 데이터세트에 액세스할 수 있어야 합니다.

기본 프로젝트가 아닌 프로젝트에 쿼리를 실행하려면 데이터세트에 프로젝트 ID를 `project_id`.dataset.INFORMATION_SCHEMA.view 형식으로 추가합니다(예: `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS).

쿼리를 실행하려면 다음 안내를 따르세요.

Console

  1. GCP Console에서 BigQuery 웹 UI를 엽니다.

    GCP Console로 이동

  2. 쿼리 편집기 상자에 다음과 같은 표준 SQL 쿼리를 입력합니다. INFORMATION_SCHEMA에는 표준 SQL 구문이 필요합니다. 표준 SQL은 GCP Console의 기본 구문입니다.

    SELECT
     * EXCEPT(check_option)
    FROM
     mydataset.INFORMATION_SCHEMA.VIEWS
    
  3. 실행을 클릭합니다.

CLI

query 명령어를 사용하고 --nouse_legacy_sql 또는 --use_legacy_sql=false 플래그를 사용하여 표준 SQL 구문을 지정합니다. INFORMATION_SCHEMA 쿼리에는 표준 SQL 구문이 필요합니다.

쿼리를 실행하려면 다음 명령어를 입력합니다.

bq query --nouse_legacy_sql \
'SELECT
   * EXCEPT(check_option)
 FROM
   mydataset.INFORMATION_SCHEMA.VIEWS'

결과는 다음과 같이 표시됩니다.

  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  | table_catalog  | table_schema  |  table_name   |                        view_definition                              | use_standard_sql |
  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  | myproject      | mydataset     | myview        | SELECT column1, column2 FROM [myproject:mydataset.mytable] LIMIT 10 | NO               |
  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  

결과는 이 보기가 legacy SQL 쿼리를 사용하여 생성되었음을 보여줍니다.

예시 2:

다음 예에서는 기본 프로젝트 myproject에서 mydatasetmyview를 정의하는 데 사용되는 SQL 쿼리와 쿼리 구문을 검색합니다.

INFORMATION_SCHEMA.VIEWS 보기에 대한 쿼리에는 데이터세트 한정자가 있어야 합니다. 쿼리를 제출하는 사용자는 보기가 포함된 데이터세트에 액세스할 수 있어야 합니다.

기본 프로젝트가 아닌 프로젝트에 쿼리를 실행하려면 데이터세트에 프로젝트 ID를 `project_id`.dataset.INFORMATION_SCHEMA.view 형식으로 추가합니다(예: `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS).

쿼리를 실행하려면 다음 안내를 따르세요.

Console

  1. GCP Console에서 BigQuery 웹 UI를 엽니다.

    GCP Console로 이동

  2. 쿼리 편집기 상자에 다음과 같은 표준 SQL 쿼리를 입력합니다. INFORMATION_SCHEMA에는 표준 SQL 구문이 필요합니다. 표준 SQL은 GCP Console의 기본 구문입니다.

    SELECT
     table_name, view_definition, use_standard_sql
    FROM
     mydataset.INFORMATION_SCHEMA.VIEWS
    WHERE
     table_name="myview"
    
  3. 실행을 클릭합니다.

CLI

query 명령어를 사용하고 --nouse_legacy_sql 또는 --use_legacy_sql=false 플래그를 사용하여 표준 SQL 구문을 지정합니다. INFORMATION_SCHEMA 쿼리에는 표준 SQL 구문이 필요합니다.

쿼리를 실행하려면 다음 명령어를 입력합니다.

bq query --nouse_legacy_sql \
'SELECT
   table_name, view_definition, use_standard_sql
 FROM
   mydataset.INFORMATION_SCHEMA.VIEWS
 WHERE
   table_name="myview"'

결과는 다음과 같이 표시됩니다.

  +---------------+---------------------------------------------------------------+------------------+
  |  table_name   |                        view_definition                        | use_standard_sql |
  +---------------+---------------------------------------------------------------+------------------+
  | myview        | SELECT column1, column2, column3 FROM mydataset.mytable       | YES              |
  +---------------+---------------------------------------------------------------+------------------+
  

결과는 이 보기가 표준 SQL 쿼리를 사용하여 생성되었음을 보여줍니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.