Skip to main content
Esta especificação descreve o formato binário que pode ser usado para a codificação e decodificação binárias de tipos de dados do ClickHouse. Esse formato é usado na coluna Dynamic em serialização binária e pode ser usado nos formatos de entrada/saída RowBinaryWithNamesAndTypes e Native com as configurações correspondentes. A tabela abaixo descreve como cada tipo de dado é representado em formato binário. Cada codificação de tipo de dado consiste em 1 byte que indica o tipo e em algumas informações adicionais opcionais. var_uint na codificação binária significa que o tamanho é codificado usando compressão do tipo Variable-Length Quantity. Para o tipo JSON, o byte uint8_serialization_version indica a versão da serialização. No momento, essa versão é sempre 0, mas pode mudar no futuro se novos argumentos forem introduzidos para o tipo JSON. Para o tipo QBit, a codificação 0x37 é usada somente quando stride difere da dimensão N. Quando stride == N (inclusive quando o terceiro argumento é especificado explicitamente, como em QBit(Float32, 4, 4)), o tipo é canonizado para a forma de dois argumentos QBit(T, N) e codificado como 0x36 acima, de modo que sua codificação binária permaneça idêntica, byte a byte, à de um QBit sem stride.

Codificação binária do tipo de intervalo

A tabela abaixo descreve como os diferentes tipos de intervalo do tipo de dado Interval são codificados.

Codificação binária dos parâmetros de funções de agregação

A tabela abaixo descreve como os parâmetros de AggregateFunction e SimpleAggregateFunction são codificados. A codificação de um parâmetro consiste em 1 byte que indica o tipo do parâmetro e no próprio valor.
Última modificação em 23 de julho de 2026