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:
Escolha HTTPS. Os detalhes de conexão são exibidos em um comando
curl de exemplo.
Se você estiver usando ClickHouse autogerenciado, os detalhes de conexão são definidos pelo administrador do seu ClickHouse.
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.