INFORMATION_SCHEMA 소개

BigQuery INFORMATION_SCHEMA 뷰는 읽기 전용이며 BigQuery 객체에 대한 메타데이터 정보를 제공하는 시스템 정의 뷰입니다. 다음 표에서는 메타데이터 정보를 검색하기 위해 쿼리할 수 있는 모든 INFORMATION_SCHEMA 뷰를 보여줍니다.

리소스 유형 INFORMATION_SCHEMA 뷰
액세스 제어 OBJECT_PRIVILEGES
BI Engine BI_CAPACITIES
BI_CAPACITY_CHANGES
구성 EFFECTIVE_PROJECT_OPTIONS
ORGANIZATION_OPTIONS
ORGANIZATION_OPTIONS_CHANGES
PROJECT_OPTIONS
PROJECT_OPTIONS_CHANGES
데이터 세트 SCHEMATA
SCHEMATA_LINKS
SCHEMATA_OPTIONS
SHARED_DATASET_USAGE
SCHEMATA_REPLICAS
작업 JOBS_BY_PROJECT
JOBS_BY_USER
JOBS_BY_FOLDER
JOBS_BY_ORGANIZATION
시간 구획별 작업 JOBS_TIMELINE_BY_PROJECT
JOBS_TIMELINE_BY_USER
JOBS_TIMELINE_BY_FOLDER
JOBS_TIMELINE_BY_ORGANIZATION
권장사항 및 통계 INSIGHTS
RECOMMENDATIONS
RECOMMENDATIONS_BY_ORGANIZATION
예약 ASSIGNMENTS_BY_PROJECT
ASSIGNMENT_CHANGES_BY_PROJECT
CAPACITY_COMMITMENTS_BY_PROJECT
CAPACITY_COMMITMENT_CHANGES_BY_PROJECT
RESERVATIONS_BY_PROJECT
RESERVATION_CHANGES_BY_PROJECT
RESERVATIONS_TIMELINE_BY_PROJECT
루틴 PARAMETERS
ROUTINES
ROUTINE_OPTIONS
검색 색인 SEARCH_INDEXES
SEARCH_INDEX_COLUMNS
세션 SESSIONS_BY_PROJECT
SESSIONS_BY_USER
스트리밍 STREAMING_TIMELINE_BY_PROJECT
STREAMING_TIMELINE_BY_FOLDER
STREAMING_TIMELINE_BY_ORGANIZATION
테이블 COLUMNS
COLUMN_FIELD_PATHS
CONSTRAINT_COLUMN_USAGE
KEY_COLUMN_USAGE
PARTITIONS
TABLES
TABLE_OPTIONS
TABLE_CONSTRAINTS
TABLE_SNAPSHOTS
TABLE_STORAGE_BY_PROJECT
TABLE_STORAGE_BY_ORGANIZATION
TABLE_STORAGE_USAGE_TIMELINE
TABLE_STORAGE_USAGE_TIMELINE_BY_ORGANIZATION
벡터 색인 VECTOR_INDEXES
VECTOR_INDEX_COLUMNS
VECTOR_INDEX_OPTIONS
VIEWS
MATERIALIZED_VIEWS
API 작성 WRITE_API_TIMELINE_BY_PROJECT
WRITE_API_TIMELINE_BY_FOLDER
WRITE_API_TIMELINE_BY_ORGANIZATION

*BY_PROJECT 뷰의 경우 BY_PROJECT 서픽스가 선택사항입니다. 예를 들어 INFORMATION_SCHEMA.JOBS_BY_PROJECTINFORMATION_SCHEMA.JOBS를 쿼리해도 동일한 결과가 반환됩니다.

가격 책정

주문형 가격을 사용하는 프로젝트의 경우 INFORMATION_SCHEMA 뷰에 대한 쿼리는 쿼리로 처리되는 바이트 수가 10MB 미만이더라도 최소 10MB의 데이터 처리 비용을 청구합니다. 주문형 쿼리의 최소 청구 금액은 10MB입니다. 자세한 내용은 주문형 가격 책정을 참조하세요.

용량 기반 가격 책정을 사용하는 프로젝트의 경우 INFORMATION_SCHEMA 뷰와 테이블에 대한 쿼리는 구매한 BigQuery 슬롯을 사용합니다. 자세한 내용은 용량 기반 가격 책정을 참조하세요.

INFORMATION_SCHEMA 쿼리는 캐시되지 않으므로 쿼리 텍스트가 동일해도 INFORMATION_SCHEMA 쿼리를 실행할 때마다 요금이 청구됩니다.

INFORMATION_SCHEMA 뷰에 대한 스토리지 수수료는 청구되지 않습니다.

구문

INFORMATION_SCHEMA 뷰는 데이터 세트 또는 리전으로 한정되어야 합니다.

데이터 세트 한정자

데이터 세트 한정자가 있으면 지정된 데이터 세트로 결과가 제한됩니다. 예를 들면 다음과 같습니다.

-- Returns metadata for tables in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.TABLES;

다음 INFORMATION_SCHEMA 뷰는 데이터 세트 한정자를 지원합니다.

  • COLUMNS
  • COLUMN_FIELD_PATHS
  • MATERIALIZED_VIEWS
  • PARAMETERS
  • PARTITIONS
  • ROUTINES
  • ROUTINE_OPTIONS
  • TABLES
  • TABLE_OPTIONS
  • VIEWS

리전 한정자

리전 한정자는 region-REGION 구문을 사용하여 표현됩니다. 모든 데이터 세트 위치 이름REGION에 사용할 수 있습니다. 예를 들어 다음 리전 한정자는 유효합니다.

  • region-us
  • region-asia-east2
  • region-europe-north1

리전 한정자가 있으면 지정된 위치로 결과가 제한됩니다. 예를 들어 다음 쿼리는 US 멀티 리전에서 프로젝트에 있는 모든 데이터 세트에 대해 메타데이터를 반환합니다.

-- Returns metadata for all datasets in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.SCHEMATA;

다음 INFORMATION_SCHEMA 뷰는 리전 한정자를 지원하지 않습니다.

리전 한정자 또는 데이터 세트 한정자를 지정하지 않으면 오류가 수신됩니다.

리전 한정 INFORMATION_SCHEMA 뷰에 대한 쿼리는 지정된 리전에서 실행됩니다. 즉, 다른 리전의 뷰에서 데이터를 조인하기 위해 단일 쿼리를 작성할 수 없습니다. 여러 리전의 INFORMATION_SCHEMA 뷰를 결합하려면 쿼리 결과를 테이블에 작성한 후 테이블을 복사하거나 데이터 세트를 공통 리전으로 이동합니다.

프로젝트 한정자

프로젝트 한정자가 있으면 지정된 프로젝트로 결과가 제한됩니다. 예를 들면 다음과 같습니다.

-- Returns metadata for the specified project and region.
SELECT * FROM myProject.`region-us`.INFORMATION_SCHEMA.TABLES;

-- Returns metadata for the specified project and dataset.
SELECT * FROM myProject.myDataset.INFORMATION_SCHEMA.TABLES;

모든 INFORMATION_SCHEMA 뷰가 프로젝트 한정자를 지원합니다. 프로젝트 한정자를 지정하지 않으면 뷰가 기본적으로 쿼리를 실행 중인 프로젝트로 지정됩니다.

조직 수준의 뷰(예: STREAMING_TIMELINE_BY_ORGANIZATION)에 대한 프로젝트 한정자를 지정해도 결과에 영향을 주지 않습니다.

제한사항

  • BigQuery INFORMATION_SCHEMA 쿼리는 GoogleSQL 구문이어야 합니다. INFORMATION_SCHEMA는 legacy SQL을 지원하지 않습니다.
  • INFORMATION_SCHEMA 쿼리 결과는 캐시되지 않습니다.
  • INFORMATION_SCHEMA 뷰는 DDL 문에서 사용할 수 없습니다.
  • INFORMATION_SCHEMA 뷰에는 숨겨진 데이터 세트에 대한 정보가 포함되지 않습니다.
  • 리전 한정자가 있는 INFORMATION_SCHEMA 쿼리에는 해당 리전에 있는 시간 이동 기간 내에 삭제된 데이터 세트의 리소스 메타데이터가 포함될 수 있습니다.
  • INFORMATION_SCHEMA 뷰에서 리소스를 나열할 때는 개별 행 수준이 아닌 상위 수준에서만 권한이 확인됩니다. 따라서 태그를 사용하여 개별 행을 조건부로 타겟팅하는 거부 정책(미리보기)은 무시됩니다.