Pular para o conteúdo principal
Consulte Tipos de Dados para uma referência geral.
A codificação dos tipos numéricos corresponde ao layout de memória de CPUs little endian, como AMD64 ou ARM64, o que permite codificação e decodificação muito eficientes.
TipoCodificação
Inteiros (Int/UInt)8, 16, 32, 64, 128 ou 256 bits em little endian
Floats (Float32/Float64)Representação binária IEEE 754
StringArray de strings no formato (len, value)
FixedString(N)Array de sequências de N bytes
IPv4Alias de UInt32, representado como UInt32
IPv6Alias de FixedString(16), representado em binário
TupleArray de colunas codificadas de forma contínua. Exemplo: Tuple(String, UInt8) = duas colunas contínuas
MapMap(K, V) = três colunas: Offsets ColUInt64, Keys K, Values V. A contagem de linhas em Keys/Values = último valor de Offsets
ArrayArray(T) = duas colunas: Offsets ColUInt64, Data T. A contagem de linhas em Data = último valor de Offsets
NullableNullable(T) = duas colunas: Nulls ColUInt8, Values T com a mesma contagem de linhas. Nulls é uma máscara: 1=null, 0=value
UUIDAlias de FixedString(16), representado em binário
EnumAlias de Int8 ou Int16, com cada inteiro mapeado para um valor String
LowCardinalityLowCardinality(T) = duas colunas: Index T, Keys K, em que K é UInt8/16/32/64. Index contém valores únicos, e Keys contém índices em Index
BoolAlias de UInt8: 0=false, 1=true
Exemplo: codificação de Nullable
To encode [null, "", "hello", null, "world"]:
  Values: ["", "", "hello", "", "world"] (len: 5)
  Nulls:  [ 1,  0,       0,  1,       0] (len: 5)
Exemplo: codificação LowCardinality
To encode ["Eko", "Eko", "Amadela", "Amadela", "Amadela", "Amadela"]:
  Index: ["Eko", "Amadela"] (String)
  Keys:  [0, 0, 1, 1, 1, 1] (UInt8)
Última modificação em 10 de junho de 2026