ClickHouse 데이터 타입

ClickHouse 데이터 타입

ClickHouse가 지원하는 데이터 타입들을 한 번에 정리해 드릴게요. 정수, 부동소수점, 문자열 같은 기본 타입부터 복합·반정형 타입까지 다양한 형태가 있어요. 시스템 테이블인 system.data_type_families에서 사용 가능한 모든 데이터 타입의 개요를 확인할 수 있어요.

출처: 문서

본문

ClickHouse가 지원하는 데이터 타입들을 한 번에 정리해 드릴게요. 정수, 부동소수점, 문자열 같은 기본 타입부터 복합·반정형 타입까지 다양하게 있어요. 서로 다른 데이터 타입은 서로 다른 압축 코덱(compression codecs)의 이점을 받을 수 있답니다. 시스템 테이블인 system.data_type_families에서 사용 가능한 모든 데이터 타입의 개요를 확인할 수 있어요. 이 테이블은 어떤 데이터 타입이 다른 타입의 별칭인지, 이름이 대소문자를 구분하는지(예: bool vs BOOL)도 함께 보여줘요.

숫자 타입 (Numeric types)

정수, 부동소수점 값, 고정 정밀도의 Decimal 값, Bool 플래그를 저장해요.

문자열 타입 (String types)

가변 길이의 String 값이나 고정 길이의 FixedString 값을 저장해요.

날짜·시간 타입 (Date and time types)

DateDate32로 날짜를, DateTimeDateTime64로 타임스탬프를, TimeTime64로 시간 값을 나타내요.

네트워크 타입 (Network types)

IPv4IPv6 주소를 컴팩트한 이진 형태로 저장해요.

복합 타입 (Composite types)

Array, Tuple, Map, Nested 구조에서 값을 조합해요.

반정형 타입 (Semi-structured types)

JSON, Dynamic, Variant로 계속 변하거나 이질적인 데이터를 저장해요.

Nullable·옵션 타입 (Nullable and optional types)

Nullable로 누락된 값을 나타내거나, LowCardinality로 반복되는 값의 저장 공간을 줄여요.

특수 타입 (Specialized types)

UUID 값, Enum 값, 지리 객체, 근사 검색용 벡터, 도메인을 모델링해요.

집계 함수 타입 (Aggregate function types)

AggregateFunctionSimpleAggregateFunction으로 집계의 중간 상태를 저장해요.

특수 데이터 타입 (Special Data Types)

Expression, Interval, Nothing, Set에 대해 알아봐요. 이 타입들은 중간 쿼리 결과에 사용돼요.

이진 인코딩 (Binary encoding)

각 데이터 타입의 직렬화 표현은 이진 인코딩 명세를 참고해요.

더 알아보기 (Learn more)