Share via


정보 스키마

적용 대상:검사 '예'로 표시 Databricks SQL 검사 '예'로 표시 Databricks Runtime 10.4 LTS 이상 검사 '예'로 표시 Unity 카탈로그만 해당

INFORMATION_SCHEMA는 Unity 카탈로그에서 만든 모든 카탈로그에 제공되는 SQL 표준 기반 스키마입니다.

정보 스키마 내에서 볼 수 있는 권한이 있는 스키마 카탈로그에 알려진 개체를 설명하는 뷰 집합을 찾을 수 있습니다. SYSTEM 카탈로그의 정보 스키마는 메타스토어 내의 모든 카탈로그에서 개체에 대한 정보를 반환합니다. 정보 스키마 시스템 테이블에는 hive_metastore 개체에 대한 메타데이터가 포함되어 있지 않습니다.

정보 스키마의 목적은 메타데이터에 SQL 기반 자체 설명 API를 제공하는 것입니다.

정보 스키마의 엔터티 관계 다이어그램

다음 ER(엔터티 관계) 다이어그램은 정보 스키마 뷰의 하위 집합과 정보 스키마 뷰가 서로 어떻게 관련되는지에 대한 개요를 제공합니다.

정보 스키마의 ER 다이어그램

정보 스키마 뷰

속성 설명
CATALOG_PRIVILEGES 카탈로그에 대한 권한이 있는 보안 주체를 나열합니다.
CATALOG_PROVIDER_SHARE_USAGE 카탈로그에 탑재된 공급자 공유에 대해 설명합니다.
CATALOG_TAGS 카탈로그에 적용된 태그를 포함합니다.
CATALOGS 카탈로그에 대해 설명합니다.
CHECK_CONSTRAINTS 향후 사용을 위해 예약되어 있습니다.
COLUMN_MASKS 카탈로그의 테이블 열에 대한 열 마스크에 대해 설명합니다.
COLUMN_TAGS 테이블 내의 열 태그 지정 메타데이터를 포함합니다.
COLUMNS 카탈로그의 테이블 및 뷰 열에 대해 설명합니다.
CONNECTION_PRIVILEGES 외신 연결에 대한 권한이 있는 보안 주체를 나열합니다.
연결 외세의 연결을 설명합니다.
CONSTRAINT_COLUMN_USAGE 카탈로그의 열을 참조하는 제약 조건에 대해 설명합니다.
CONSTRAINT_TABLE_USAGE 카탈로그의 테이블을 참조하는 제약 조건에 대해 설명합니다.
EXTERNAL_LOCATION_PRIVILEGES 외부 위치에 대한 권한이 있는 보안 주체를 나열합니다.
EXTERNAL_LOCATIONS 외부 위치를 설명합니다.
INFORMATION_SCHEMA_CATALOG_NAME 이 정보 스키마의 카탈로그 이름을 반환합니다.
KEY_COLUMN_USAGE 카탈로그 내의 기본 또는 외래 키 제약 조건의 열을 나열합니다.
METASTORE_PRIVILEGES 현재 메타스토어에 대한 권한이 있는 보안 주체를 나열합니다.
메타스토어 현재 메타스토어를 설명합니다.
매개 변수 카탈로그의 루틴(함수)의 매개 변수에 대해 설명합니다.
PROVIDERS 공급자에 대해 설명합니다.
RECIPIENT_ALLOWED_IP_RANGES 받는 사람에게 허용되는 IP 범위를 나열합니다.
RECIPIENT_TOKENS 받는 사람에 대한 토큰을 나열합니다.
받는 사람 받는 사람을 설명합니다.
REFERENTIAL_CONSTRAINTS 카탈로그에 정의된 참조(외래 키) 제약 조건에 대해 설명합니다.
ROUTINE_COLUMNS 테이블 반환 함수의 결과 열에 대해 설명합니다.
ROUTINE_PRIVILEGES 카탈로그의 루틴에 대한 권한이 있는 보안 주체를 나열합니다.
ROUTINES 카탈로그의 루틴(함수)을 설명합니다.
ROW_FILTERS 카탈로그의 테이블에 대한 행 필터에 대해 설명합니다.
SCHEMA_PRIVILEGES 카탈로그의스키마에 대한 권한이 있는 보안 주체를 나열합니다.
SCHEMA_TAGS 스키마 내의 스키마 태그 지정 메타데이터를 포함합니다.
SCHEMA_SHARE_USAGE 공유에서 참조되는 스키마에 대해 설명합니다.
SCHEMATA 카탈로그 내의 스키마에 대해 설명합니다.
SHARE_RECIPIENT_PRIVILEGES 공유에 대한 액세스 권한이 부여된 받는 사람을 설명합니다.
공유 공유에 대해 설명합니다.
STORAGE_CREDENTIAL_PRIVILEGES 스토리지 자격 증명에 대한 권한이 있는 보안 주체를 나열합니다.
STORAGE_CREDENTIALS 스토리지 자격 증명에 대해 설명합니다.
TABLE_CONSTRAINTS 카탈로그 내의 모든 기본 및 외래 키 제약 조건에 대한 메타데이터를 설명합니다.
TABLE_PRIVILEGES 카탈로그의 테이블 및 뷰에 대한 권한이 있는 보안 주체를 나열합니다.
TABLE_SHARE_USAGE 공유에서 참조되는 테이블을 설명합니다.
TABLE_TAGS 테이블 내의 테이블 태그 지정 메타데이터를 포함합니다.
테이블 카탈로그 내에 정의된 테이블 및 뷰에 대해 설명합니다.
VIEWS 카탈로그의 뷰에 대한 특정 정보 보기에 대해 설명합니다.
볼륨 카탈로그에 정의된 볼륨에 대해 설명합니다.
VOLUME_PRIVILEGES 카탈로그의 볼륨에 대한 권한이 있는 보안 주체를 나열합니다.
VOLUME_TAGS 볼륨에 적용된 볼륨 태그 지정 메타데이터를 포함합니다.

주의

식별자는 SQL 문에서 참조할 때 대/소문자를 구분하지 않지만 정보 스키마에는 STRING으로 저장됩니다. 즉, 식별자가 저장된 경우를 사용하여 검색하거나 ilike와 같은 함수를 사용해야 합니다.

예제

> SELECT table_name, column_name
    FROM information_schema.columns
    WHERE data_type = 'DOUBLE'
      AND table_schema = 'information_schema';

다음은 시스템 수준 정보 스키마 테이블을 사용하는 워크플로의 예입니다.

지난 24시간 동안 만들어진 모든 테이블을 보려면 쿼리가 다음과 같을 수 있습니다.

> SELECT table_name, table_owner, created_by, last_altered, last_altered_by, table_catalog
    FROM system.information_schema.tables
    WHERE  datediff(now(), last_altered) < 1;

각 스키마에 있는 테이블 수를 보려면 다음 예제를 고려하세요.

> SELECT table_schema, count(table_name)
    FROM system.information_schema.tables
    WHERE table_schema = 'tpch'
    GROUP BY table_schema
    ORDER BY 2 DESC