도메인

도메인 (Domains) 데이터 타입

도메인은 기존 기본 타입 위에 추가 기능을 얹는 특수 목적 타입이에요. 와이어·디스크 형식은 그대로 유지하면서 사람이 읽기 좋은 형식으로 입출력할 수 있게 해줘요. 현재 ClickHouse는 사용자 정의 도메인은 지원하지 않아요.

출처: 문서

본문

도메인은 기존 기본(base) 타입 위에 추가 기능을 더하는 특수 목적 타입이에요. 하부 데이터 타입의 와이어(on-wire)·디스크(on-disk) 형식은 그대로 유지해요. 현재 ClickHouse는 사용자 정의 도메인을 지원하지 않아요.

도메인은 해당 기본 타입을 쓸 수 있는 곳이라면 어디든 사용할 수 있어요. 예를 들어:

  • 도메인 타입의 컬럼을 만들기
  • 도메인 컬럼에서 값을 읽거나 쓰기
  • 기본 타입을 인덱스로 쓸 수 있다면 인덱스로 사용하기
  • 도메인 컬럼의 값으로 함수 호출하기

도메인의 추가 기능 (Extra Features of Domains)

  • SHOW CREATE TABLE 또는 DESCRIBE TABLE에서 명시적인 컬럼 타입 이름
  • INSERT INTO domain_table(domain_column) VALUES(...)로 사람이 읽기 좋은 형식의 입력
  • SELECT domain_column FROM domain_table에 대한 사람이 읽기 좋은 형식의 출력
  • 외부 소스에서 사람이 읽기 좋은 형식으로 데이터 불러오기: INSERT INTO domain_table FORMAT CSV ...

제한 (Limitations)

  • ALTER TABLE로 기본 타입의 인덱스 컬럼을 도메인 타입으로 변환할 수 없어요.
  • 다른 컬럼이나 테이블에서 데이터를 넣을 때 문자열 값을 도메인 값으로 암시적으로 변환할 수 없어요.
  • 도메인은 저장된 값에 제약을 추가하지 않아요.

더 알아보기 (Learn more)