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

INFORMATION_SCHEMA.VIEWS에는 뷰에 대한 메타데이터가 포함되어 있습니다.

필수 권한

VIEWS의 경우 bigquery.tables.getbigquery.tables.list 권한이 부여되어 있어야 합니다.

구문

이 뷰에 대한 쿼리에는 데이터 세트 또는 리전 한정자가 있어야 합니다.

-- Returns metadata for views in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.VIEWS;

-- Returns metadata for all views in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.VIEWS;

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

예시

예시 1:

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

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

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

Console

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

    Cloud Console로 이동

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

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

bq

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:

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

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

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

Console

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

    Cloud Console로 이동

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

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

bq

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 쿼리를 사용하여 생성되었음을 보여줍니다.