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.
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):
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 1 de julho de 2026