네이티브 프로토콜 컬럼 타입
일반적인 내용은 Data Types를 참조하십시오.
팁
숫자 타입 인코딩은 AMD64 또는 ARM64와 같은 리틀 엔디언 CPU의 메모리 레이아웃과 일치하므로 매우 효율적으로 인코딩하고 디코딩할 수 있습니다.
| 유형 | 인코딩 |
|---|---|
| 정수 (Int/UInt) | 리틀 엔디언 방식의 8, 16, 32, 64, 128 또는 256비트 |
| 부동소수점 (Float32/Float64) | IEEE 754 바이너리 표현 |
| String | 문자열 배열, 각 항목은 (len, value) 형식 |
| FixedString(N) | N바이트 시퀀스의 배열 |
| IPv4 | UInt32의 별칭이며, UInt32로 표현됩니다 |
| IPv6 | FixedString(16)의 별칭이며, 바이너리로 표현됩니다 |
| Tuple | 컬럼 배열이 연속해서 인코딩됩니다. 예시: Tuple(String, UInt8) = 연속된 두 개의 컬럼 |
| Map | Map(K, V) = 3개의 컬럼: Offsets ColUInt64, Keys K, Values V. Keys/Values의 행 수 = 마지막 Offsets 값 |
| Array | Array(T) = 2개의 컬럼: Offsets ColUInt64, Data T. Data의 행 수 = 마지막 Offsets 값 |
| Nullable | Nullable(T) = 2개의 컬럼: Nulls ColUInt8, Values T, 두 컬럼의 행 수는 동일합니다. Nulls는 마스크입니다: 1=null, 0=value |
| UUID | FixedString(16)의 별칭이며, 바이너리로 표현됩니다 |
| Enum | Int8 또는 Int16의 별칭이며, 각 정수는 String 값에 매핑됩니다 |
| LowCardinality | LowCardinality(T) = 2개의 컬럼: Index T, Keys K, 여기서 K는 UInt8/16/32/64입니다. Index에는 고유 값이 포함되고, Keys에는 Index를 가리키는 인덱스가 포함됩니다 |
| Bool | UInt8의 별칭: 0=false, 1=true |
예시: Nullable 인코딩
예시: LowCardinality 인코딩