boolean | UInt8 or Bool | 최신 버전의 ClickHouse에서는 Boolean을 UInt8의 alias로 지원합니다. |
keyword | String | 정확히 일치하는 값의 필터링, 그룹화, 정렬에 사용됩니다. |
text | String | ClickHouse의 전문 검색은 제한적이며, tokenization에는 tokens와 array functions 등의 함수를 조합한 사용자 정의 로직이 필요합니다. |
long | Int64 | 64비트 부호 있는 정수입니다. |
integer | Int32 | 32비트 부호 있는 정수입니다. |
short | Int16 | 16비트 부호 있는 정수입니다. |
byte | Int8 | 8비트 부호 있는 정수입니다. |
unsigned_long | UInt64 | 부호 없는 64비트 정수입니다. |
double | Float64 | 64비트 부동소수점입니다. |
float | Float32 | 32비트 부동소수점입니다. |
half_float | Float32 or BFloat16 | 가장 가까운 대응 타입입니다. ClickHouse에는 16비트 float 타입이 없습니다. ClickHouse의 BFloat16은 Half-float IEEE-754와는 다릅니다. half-float는 더 좁은 범위 대신 더 높은 정밀도를 제공하고, bfloat16은 더 넓은 범위를 위해 정밀도를 희생하므로 머신 러닝 workload에 더 적합합니다. |
scaled_float | Decimal(x, y) | 고정소수점 숫자 값을 저장합니다. |
date | DateTime | 초 단위 정밀도를 갖는 대응 날짜 타입입니다. |
date_nanos | DateTime64 | ClickHouse는 DateTime64(9)로 나노초 정밀도를 지원합니다. |
binary | String, FixedString(N) | 바이너리 필드는 base64 디코딩이 필요합니다. |
ip | IPv4, IPv6 | 네이티브 IPv4 및 IPv6 타입을 사용할 수 있습니다. |
object | Nested, Map, Tuple, JSON | ClickHouse는 Nested 또는 JSON을 사용해 JSON과 유사한 객체를 모델링할 수 있습니다. |
flattened | String | Elasticsearch의 flattened 타입은 전체 JSON 객체를 단일 필드로 저장하여, 전체 매핑 없이도 중첩 키에 유연하게 스키마 없이 접근할 수 있도록 합니다. ClickHouse에서는 유사한 기능을 String 타입으로 구현할 수 있지만, 처리는 materialized views에서 수행해야 합니다. |
nested | Nested | ClickHouse의 Nested 컬럼은 사용자가 flatten_nested=0을 사용하는 경우 그룹화된 하위 필드에 대해 유사한 의미를 제공합니다. |
join | NA | 부모-자식 관계에 직접 대응하는 개념은 없습니다. ClickHouse는 테이블 간 조인을 지원하므로 필요하지 않습니다. |
alias | Alias column modifier | 필드 modifier를 통해 alias를 지원합니다. 예를 들어 size String ALIAS formatReadableSize(size_bytes)와 같이 이러한 alias에 함수를 적용할 수 있습니다. |
range types (*_range) | Tuple(start, end) or Array(T) | ClickHouse에는 네이티브 range 타입이 없지만, 숫자 및 날짜 범위는 Tuple(start, end) 또는 Array 구조로 표현할 수 있습니다. IP 범위(ip_range)의 경우 CIDR 값을 String으로 저장하고 isIPAddressInRange() 같은 함수로 평가하십시오. 또는 효율적인 필터링을 위해 ip_trie 기반 lookup Dictionaries를 고려할 수 있습니다. |
aggregate_metric_double | AggregateFunction(...) and SimpleAggregateFunction(...) | 사전 집계된 메트릭을 모델링하려면 집계 함수 상태와 materialized views를 사용하십시오. 모든 집계 함수는 aggregate states를 지원합니다. |
histogram | Tuple(Array(Float64), Array(UInt64)) | 배열 또는 사용자 정의 schemas를 사용해 버킷과 개수를 수동으로 표현하십시오. |
annotated-text | String | 엔터티 인식 검색이나 어노테이션에 대한 내장 지원은 없습니다. |
completion, search_as_you_type | NA | 네이티브 자동완성 또는 suggester engine은 없습니다. String과 search functions으로 구현할 수 있습니다. |
semantic_text | NA | 네이티브 semantic search는 지원하지 않으므로 embeddings를 생성하고 벡터 검색을 사용하십시오. |
token_count | Int32 | 수집 중 토큰 수를 수동으로 계산하는 데 사용하십시오. 예: Materialized column과 함께 length(tokens()) 함수 사용 |
dense_vector | Array(Float32) | embeddings 저장에는 배열을 사용하십시오. |
sparse_vector | Map(UInt32, Float32) | 맵으로 희소 벡터를 시뮬레이션할 수 있습니다. 네이티브 희소 벡터 지원은 없습니다. |
rank_feature / rank_features | Float32, Array(Float32) | 쿼리 시점의 네이티브 가중치 부여는 지원하지 않지만, 스코어링 로직에서 수동으로 구현할 수 있습니다. |
geo_point | Tuple(Float64, Float64) 또는 Point | (위도, 경도) 튜플을 사용하십시오. Point는 ClickHouse 타입으로도 사용할 수 있습니다. |
geo_shape, shape | Ring, LineString, MultiLineString, Polygon, MultiPolygon | Geo shape와 공간 인덱싱을 네이티브로 지원합니다. |
percolator | NA | 쿼리를 인덱싱하는 개념은 없습니다. 대신 표준 SQL + 증분형 materialized view를 사용하십시오. |
version | String | ClickHouse에는 네이티브 버전 타입이 없습니다. 버전은 문자열로 저장하고, 필요하면 사용자 정의 UDF를 사용해 시맨틱 비교를 수행하십시오. 범위 쿼리가 필요하다면 숫자 포맷으로 정규화하는 방안을 고려하십시오. |