Usando o Vector com Kafka e ClickHouse
Licença
Reúna os detalhes da conexão
Os detalhes do seu serviço do ClickHouse Cloud estão disponíveis no console do ClickHouse Cloud.
Selecione um serviço e clique em Connect:

curl de exemplo.

Etapas
- Crie o tópico
githubno Kafka e insira o dataset do GitHub.
ClickHouse/ClickHouse.
- Certifique-se de que a tabela de destino foi criada. Abaixo, usamos o banco de dados padrão.
- Baixe e instale o Vector. Crie um arquivo de configuração
kafka.tomle ajuste os valores das suas instâncias do Kafka e do ClickHouse.
- Este exemplo foi testado no Confluent Cloud. Portanto, as opções de segurança
sasl.*essl.enabledpodem não ser adequadas em ambientes autogerenciados. - Não é necessário informar um prefixo de protocolo para o parâmetro de configuração
bootstrap_servers, por exemplopkc-2396y.us-east-1.aws.confluent.cloud:9092 - O parâmetro da fonte
decoding.codec = "json"garante que a mensagem seja passada ao sink do ClickHouse como um único objeto JSON. Ao tratar mensagens como strings e usar o valor padrãobytes, o conteúdo da mensagem será anexado ao campomessage. Na maioria dos casos, isso exigirá processamento no ClickHouse, conforme descrito no guia Primeiros passos com o Vector. - O Vector adiciona vários campos às mensagens. No nosso exemplo, ignoramos esses campos no sink do ClickHouse por meio do parâmetro de configuração
skip_unknown_fields = true. Isso ignora campos que não fazem parte do esquema da tabela de destino. Se quiser, ajuste seu esquema para garantir que esses metacampos, comooffset, sejam adicionados. - Observe como o sink faz referência à fonte de eventos por meio do parâmetro
inputs. - Observe o comportamento do sink do ClickHouse, conforme descrito aqui. Para obter vazão ideal, talvez seja interessante ajustar os parâmetros
buffer.max_events,batch.timeout_secsebatch.max_bytes. Conforme as recomendações do ClickHouse, um valor de 1000 deve ser considerado o mínimo para o número de eventos em um único batch. Para casos de uso com alta vazão uniforme, você pode aumentar o parâmetrobuffer.max_events. Vazões mais variáveis podem exigir alterações no parâmetrobatch.timeout_secs - O parâmetro
auto_offset_reset = "smallest"força a fonte do Kafka a começar no início do tópico, garantindo assim que consumamos as mensagens publicadas na etapa (1). Talvez você precise de um comportamento diferente. Veja aqui para mais detalhes.
- Inicie o Vector
VECTOR_LOG=debug no início para obter logs adicionais, o que pode ser útil caso você encontre problemas.
- Confirme a inserção dos dados.