Descrição
AvroConfluent oferece suporte à leitura e à gravação de mensagens codificadas em Avro usando o Confluent Schema Registry (ou serviços compatíveis com a API).
Cada mensagem usa o wire format da Confluent: um byte mágico (0x00), seguido de um ID de schema de 4 bytes em big-endian e, em seguida, do datum binário Avro. Durante a leitura, o ClickHouse resolve o ID do schema consultando o registry. Durante a gravação, o ClickHouse registra o schema derivado das colunas de saída e prefixa cada linha com o ID resultante. Os schemas são armazenados em cache para garantir desempenho ideal.
Mapeamento de tipos de dados
INSERT e SELECT.
bytesé o padrão, controlado pela configuraçãooutput_format_avro_string_column_pattern
null como valor de campo; assim, por exemplo, o Avro union(T1, T2, null) será convertido em Variant(T1, T2).
Como resultado, ao gerar Avro a partir do ClickHouse, precisamos sempre incluir o tipo null no conjunto de tipos union do Avro, pois não sabemos, durante a inferência de esquema, se algum valor é de fato null.
*** Tipos lógicos do Avro
Tipos de dados lógicos do Avro não compatíveis:
time-millistime-microsduration
Configurações de formato
Exemplos
Lendo do Kafka
format_avro_schema_registry_url para informar a URL do schema registry.
Gravando no Kafka
Usando autenticação básica
format_avro_schema_registry_url.
Solução de problemas
system.kafka_consumers. Se a sua implantação tiver várias réplicas (por exemplo, no ClickHouse Cloud), será necessário usar a função de tabela clusterAllReplicas.