본문으로 바로가기
본문으로 바로가기

DESCRIBE TABLE

테이블 컬럼에 대한 정보를 반환합니다.

구문

DESC|DESCRIBE TABLE [db.]table [INTO OUTFILE filename] [FORMAT format]

DESCRIBE SQL 문은 각 테이블 컬럼마다 다음과 같은 String 값을 갖는 행을 하나씩 반환합니다:

  • name — 컬럼 이름입니다.
  • type — 컬럼 타입입니다.
  • default_type — 컬럼의 기본 표현식(default expression)에 사용되는 절입니다. DEFAULT, MATERIALIZED, ALIAS 중 하나입니다. 기본 표현식이 없으면 빈 문자열이 반환됩니다.
  • default_expressionDEFAULT 절 뒤에 지정된 표현식입니다.
  • comment컬럼 주석입니다.
  • codec_expression — 컬럼에 적용되는 코덱입니다.
  • ttl_expressionTTL 표현식입니다.
  • is_subcolumn — 내부 서브컬럼일 경우 값이 1인 플래그입니다. describe_include_subcolumns 설정으로 서브컬럼 설명을 활성화한 경우에만 결과에 포함됩니다.

Nested 데이터 구조 안의 모든 컬럼은 각각 별도로 기술됩니다. 각 컬럼 이름 앞에는 상위 컬럼 이름과 점(.)이 붙습니다.

다른 데이터 타입의 내부 서브컬럼을 표시하려면 describe_include_subcolumns 설정을 사용합니다.

예시

쿼리:

CREATE TABLE describe_example (
    id UInt64, text String DEFAULT 'unknown' CODEC(ZSTD),
    user Tuple (name String, age UInt8)
) ENGINE = MergeTree() ORDER BY id;

DESCRIBE TABLE describe_example;
DESCRIBE TABLE describe_example SETTINGS describe_include_subcolumns=1;

결과:

┌─name─┬─type──────────────────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ id   │ UInt64                        │              │                    │         │                  │                │
│ text │ String                        │ DEFAULT      │ 'unknown'          │         │ ZSTD(1)          │                │
│ user │ Tuple(name String, age UInt8) │              │                    │         │                  │                │
└──────┴───────────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘

두 번째 쿼리는 하위 컬럼도 함께 보여 줍니다:

┌─name──────┬─type──────────────────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┬─is_subcolumn─┐
│ id        │ UInt64                        │              │                    │         │                  │                │            0 │
│ text      │ String                        │ DEFAULT      │ 'unknown'          │         │ ZSTD(1)          │                │            0 │
│ user      │ Tuple(name String, age UInt8) │              │                    │         │                  │                │            0 │
│ user.name │ String                        │              │                    │         │                  │                │            1 │
│ user.age  │ UInt8                         │              │                    │         │                  │                │            1 │
└───────────┴───────────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┴──────────────┘

DESCRIBE 문은 서브쿼리나 스칼라 표현식에도 사용할 수 있습니다:

DESCRIBE SELECT 1 FORMAT TSV;

또는

DESCRIBE (SELECT 1) FORMAT TSV;

결과:

1       UInt8

이 사용법은 지정된 쿼리 또는 서브쿼리의 결과 컬럼에 대한 메타데이터를 반환합니다. 복잡한 쿼리를 실행하기 전에 그 구조를 미리 파악하는 데 유용합니다.

참고