Saltar al contenido principal
Consulta Tipos de datos para obtener una referencia general.
La codificación de los tipos numéricos coincide con la representación en memoria de las CPU little-endian, como AMD64 o ARM64, lo que permite una codificación y decodificación muy eficientes.
TipoCodificación
Enteros (Int/UInt)8, 16, 32, 64, 128 o 256 bits en little endian
Flotantes (Float32/Float64)representación binaria IEEE 754
StringArray de cadenas como (len, value)
FixedString(N)Array de secuencias de N bytes
IPv4Alias de UInt32, representado como UInt32
IPv6Alias de FixedString(16), representado en binario
TupleArray de columnas codificadas de forma continua. Example: Tuple(String, UInt8) = dos columnas continuas
MapMap(K, V) = tres columnas: Offsets ColUInt64, Keys K, Values V. El número de filas en Keys/Values = el último valor de Offsets
ArrayArray(T) = dos columnas: Offsets ColUInt64, Data T. El número de filas en Data = el último valor de Offsets
NullableNullable(T) = dos columnas: Nulls ColUInt8, Values T con el mismo número de filas. Nulls es una máscara: 1=null, 0=value
UUIDAlias de FixedString(16), representado en binario
EnumAlias de Int8 o Int16, cada entero se asigna a un valor String
LowCardinalityLowCardinality(T) = dos columnas: Index T, Keys K donde K es UInt8/16/32/64. Index contiene valores únicos; Keys contiene índices de Index
BoolAlias de UInt8: 0=false, 1=true
Ejemplo: codificación de Nullable
To encode [null, "", "hello", null, "world"]:
  Values: ["", "", "hello", "", "world"] (len: 5)
  Nulls:  [ 1,  0,       0,  1,       0] (len: 5)
Ejemplo: codificación LowCardinality
To encode ["Eko", "Eko", "Amadela", "Amadela", "Amadela", "Amadela"]:
  Index: ["Eko", "Amadela"] (String)
  Keys:  [0, 0, 1, 1, 1, 1] (UInt8)
Última modificación el 10 de junio de 2026