Pular para o conteúdo principal

Descrição

O formato CapnProto é um formato de mensagem binária semelhante ao Protocol Buffers e ao Thrift, mas diferente de JSON ou MessagePack. As mensagens CapnProto são estritamente tipadas e não são autodescritivas, o que significa que precisam de uma descrição externa do esquema. O esquema é aplicado dinamicamente e armazenado em cache para cada consulta. Veja também Esquema de formato.

Correspondência entre tipos de dados

A tabela abaixo mostra os tipos de dados suportados e como eles correspondem aos tipos de dados do ClickHouse em consultas INSERT e SELECT.
  • Tipos inteiros podem ser convertidos entre si na entrada/saída.
  • Para trabalhar com Enum no formato CapnProto, use o setting format_capn_proto_enum_comparising_mode.
  • Arrays podem ser aninhados e podem ter um argumento do tipo Nullable. Os tipos Tuple e Map também podem ser aninhados.

Exemplo de uso

Inserindo e selecionando dados

Você pode inserir dados CapnProto de um arquivo em uma tabela do ClickHouse usando o comando a seguir:
Em que schema.capnp é assim:
Você pode selecionar dados de uma tabela do ClickHouse e salvá-los em um arquivo no formato CapnProto usando o comando a seguir:

Usando esquema gerado automaticamente

Se você não tiver um esquema externo CapnProto para seus dados, ainda poderá exportar/importar dados no formato CapnProto usando um esquema gerado automaticamente. Por exemplo:
Nesse caso, o ClickHouse gerará automaticamente o esquema CapnProto com base na estrutura da tabela usando a função structureToCapnProtoSchema e usará esse esquema para serializar os dados no formato CapnProto. Você também pode ler um arquivo CapnProto com esquema gerado automaticamente (nesse caso, o arquivo deve ser criado usando o mesmo esquema):

Configurações de formato

A configuração format_capn_proto_use_autogenerated_schema vem habilitada por padrão e se aplica quando format_schema não está definida. Você também pode salvar o esquema gerado automaticamente em um arquivo durante a entrada/saída usando a configuração output_format_schema. Por exemplo:
Nesse caso, o esquema CapnProto gerado automaticamente será salvo no arquivo path/to/schema/schema.capnp.
Última modificação em 2 de julho de 2026