다음을 통해 공유


정보 스키마

적용 대상:확인 표시 예 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 외부 연결에 대한 권한이 있는 주체를 나열합니다.
CONNECTIONS 외국의 관계를 설명합니다.
CONSTRAINT_COLUMN_USAGE 카탈로그의 열을 참조하는 제약 조건에 대해 설명합니다.
CONSTRAINT_TABLE_USAGE 카탈로그의 테이블을 참조하는 제약 조건에 대해 설명합니다.
CREDENTIAL_PRIVILEGES 자격 증명에 권한이 있는 보안 주체나열합니다.
CREDENTIALS 자격 증명을 설명합니다.
EXTERNAL_LOCATION_PRIVILEGES 외부 위치에 대한 권한이 있는 보안 주체나열합니다.
EXTERNAL_LOCATIONS 외부 위치를 설명합니다.
INFORMATION_SCHEMA_CATALOG_NAME 이 정보 스키마 카탈로그의 이름을 반환합니다.
KEY_COLUMN_USAGE 카탈로그 내의 기본 또는 외래 키 제약 조건의 열을 나열합니다.
METASTORE_PRIVILEGES 현재 메타스토어에 대해 권한을 가진 주체 목록을 나열합니다.
METASTORES 현재 메타스토어를 설명합니다.
PARAMETERS 카탈로그의 루틴(함수)의 매개 변수에 대해 설명합니다.
PROVIDERS 공급자에 대해 설명합니다.
RECIPIENT_ALLOWED_IP_RANGES 받는 사람에게 허용되는 IP 범위를 나열합니다.
RECIPIENT_TOKENS 받는 사람에 대한 토큰을 나열합니다.
RECIPIENTS 받는 사람을 설명합니다.
REFERENTIAL_CONSTRAINTS 카탈로그에 정의된 참조(외래 키) 제약 조건에 대해 설명합니다.
ROUTINE_COLUMNS 테이블 값 함수의 결과 열에 대해 설명합니다.
ROUTINE_PRIVILEGES 카탈로그에서 루틴에 대한 권한이 있는 주체를 나열합니다.
ROUTINES 카탈로그의 루틴(함수)을 설명합니다.
ROW_FILTERS 카탈로그의 테이블에 대한 행 필터에 대해 설명합니다.
SCHEMA_PRIVILEGES 카탈로그 내 스키마에 대해 권한을 가진 주체를 열거합니다.
SCHEMA_TAGS 스키마 내의 스키마 태그 지정 메타데이터를 포함합니다.
SCHEMA_SHARE_USAGE 공유에 참조된 스키마를 설명합니다.
SCHEMATA 카탈로그 내의 스키마에 대해 설명합니다.
SHARE_RECIPIENT_PRIVILEGES 공유에 대한 액세스 권한이 부여된 받는 사람을 설명합니다.
SHARES 공유에 대해 설명합니다.
STORAGE_CREDENTIAL_PRIVILEGES [더 이상 사용되지 않음] 스토리지 자격 증명에 대해 권한을 가진 원칙 목록을 나열합니다.
STORAGE_CREDENTIALS [사용되지 않음] 스토리지 자격 증명에 대해 설명합니다.
TABLE_CONSTRAINTS 카탈로그 내의 모든 기본 및 외래 키 제약 조건에 대한 메타데이터를 설명합니다.
TABLE_PRIVILEGES 카탈로그의 테이블 및 뷰에 대한 권한이 있는 보안 주체를 나열합니다.
TABLE_SHARE_USAGE 공유에서 참조되는 테이블을 설명합니다.
TABLE_TAGS 테이블 내의 테이블 태그 지정 메타데이터를 포함합니다.
TABLES 카탈로그 내에 정의된 테이블 및 뷰에 대해 설명합니다.
VIEWS 카탈로그의 뷰에 대한 특정 정보 보기에 대해 설명합니다.
VOLUMES 카탈로그에 정의된 볼륨에 대해 설명합니다.
VOLUME_PRIVILEGES 카탈로그의 볼륨에 대한 권한이 있는 보안 주체를 나열합니다.
VOLUME_TAGS 볼륨에 적용된 볼륨 태그 지정 메타데이터를 포함합니다.

노트

  • 일부 카탈로그 메타데이터 변경 내용을 정보 스키마에 반영하려면 수동 동기화를 사용해야 REPAIR TABLE 할 수 있습니다. 자세한 내용은 REPAIR TABLE를 참조하세요.
  • 열 및 태그 이름을 제외한 모든 식별자는 정보 스키마에 소문 STRING자로 저장됩니다. 쿼리 성능을 위해 LOWER()이나 UPPER() 같은 함수를 식별자 열에서는 사용하지 마십시오. 대신 소문자 값을 사용하여 식별자를 직접 비교합니다.
  • 쿼리 시간 제한을 방지하려면 정보 스키마를 쿼리할 때 선택적 필터를 적용합니다(예: WHERE table_catalog = 'main' AND table_schema = 'default'). 각 정보 스키마 테이블에 대한 필터로 사용할 수 있는 열의 전체 목록은 위의 설명서를 참조하세요.
    • LIMIT 푸시다운은 현재 지원되지 않으므로 결과를 잘라낼 수 있지만 성능은 향상되지 않습니다.

예제

> 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