Типы столбцов
Смотрите Типы данных для общего справочника.
Числовые типы
Кодирование числовых типов соответствует размещению в памяти процессоров с малым порядком байтов, таких как AMD64 или ARM64.
Это позволяет реализовать очень эффективное кодирование и декодирование.
Целые числа
Строка Int и UInt длиной 8, 16, 32, 64, 128 или 256 бит, в малом порядке байтов.
Числа с плавающей запятой
Float32 и Float64 в двоичном представлении IEEE 754.
Строка
Просто массив строк, т.е. (len, value).
FixedString(N)
Массив последовательностей фиксированной длины N байт.
IP
IPv4 является псевдонимом числового типа UInt32
и представлен как UInt32.
IPv6 является псевдонимом FixedString(16)
и представлен в двоичном виде напрямую.
Кортеж
Кортеж — это просто массив столбцов. Например, Tuple(String, UInt8) это просто два столбца, закодированные непрерывно.
Карта
Map(K, V)
состоит из трех столбцов: Offsets ColUInt64, Keys K, Values V
.
Количество строк в столбцах Keys
и Values
соответствует последнему значению из Offsets
.
Массив
Array(T)
состоит из двух столбцов: Offsets ColUInt64, Data T
.
Количество строк в Data
соответствует последнему значению из Offsets
.
Допуск
Nullable(T)
состоит из Nulls ColUInt8, Values T
с одинаковым количеством строк.
UUID
Псевдоним FixedString(16)
, значение UUID представляется в двоичном виде.
Enum
Псевдоним для Int8
или Int16
, но каждое целое число сопоставляется с некоторым значением типа String
.
Низкая кардинальность
LowCardinality(T)
состоит из Index T, Keys K
, где K
является одним из (UInt8, UInt16, UInt32, UInt64) в зависимости от размера Index
.
Bool
Псевдоним для UInt8
, где 0
— ложь, а 1
— истина.