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