Este conector JDBC só deve ser usado se os seus dados forem simples e consistirem em tipos de dados primitivos, como int. Tipos específicos do ClickHouse, como maps, não são compatíveis.
Licença
Etapas
Reúna as informações 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.
1. Instale o Kafka Connect e o conector
confluent-hub, seus arquivos de configuração locais serão atualizados.
Para enviar dados do Kafka para o ClickHouse, usamos o componente sink do conector.
2. Baixe e instale o driver JDBC
clickhouse-jdbc-<version>-shaded.jar aqui. Instale-o no Kafka Connect seguindo as instruções aqui. Outros drivers podem funcionar, mas não foram testados.
Problema comum: a documentação sugere copiar o arquivo jar para
share/java/kafka-connect-jdbc/. Se você tiver problemas para o Connect localizar o driver, copie-o para share/confluent-hub-components/confluentinc-kafka-connect-jdbc/lib/. Como alternativa, modifique plugin.path para incluir o driver — veja abaixo.3. Prepare a configuração
_connection.url_- deve ter o formatojdbc:clickhouse://<clickhouse host>:<clickhouse http port>/<target database>connection.user- um usuário com acesso de gravação ao banco de dados de destinotable.name.format- tabela do ClickHouse na qual inserir os dados. Ela deve existir.batch.size- O número de linhas a serem enviadas em um único batch. Certifique-se de definir um valor adequadamente alto. De acordo com as recomendações do ClickHouse, o valor mínimo deve ser 1000.tasks.max- O conector JDBC Sink oferece suporte à execução de uma ou mais tasks. Isso pode ser usado para aumentar o desempenho. Junto com o tamanho do batch, esse é o principal meio de melhorar o desempenho.value.converter.schemas.enable- Defina como false se estiver usando um registro de esquemas, true se estiver incorporando os esquemas nas mensagens.value.converter- Defina de acordo com o tipo de dado; por exemplo, para JSON,io.confluent.connect.json.JsonSchemaConverter.key.converter- Defina comoorg.apache.kafka.connect.storage.StringConverter. Utilizamos chaves String.pk.mode- Não é relevante para o ClickHouse. Defina como none.auto.create- Não é compatível e deve ser false.auto.evolve- Recomendamos false para essa configuração, embora ela possa vir a ser compatível no futuro.insert.mode- Defina como “insert”. Outros modos não são compatíveis no momento.key.converter- Defina de acordo com os tipos das suas chaves.value.converter- Defina com base no tipo de dados no seu topic. Esses dados devem ter um esquema compatível: formatos JSON, Avro ou Protobuf.
value.converter.schemas.enable- Defina como false, pois utilizamos um registro de esquemas. Defina como true se estiver incorporando o esquema em cada mensagem.key.converter- Defina como “org.apache.kafka.connect.storage.StringConverter”. Utilizamos chaves String.value.converter- Defina como “io.confluent.connect.json.JsonSchemaConverter”.value.converter.schema.registry.url- Defina a URL do servidor de esquema, junto com as credenciais do servidor de esquema, por meio do parâmetrovalue.converter.schema.registry.basic.auth.user.info.
4. Crie a tabela do ClickHouse
5. Inicie o Kafka Connect
6. Adicione dados ao Kafka
github.config para incluir suas credenciais do Kafka. No momento, o script está configurado para uso com o Confluent Cloud.
Leitura complementar recomendada
- Parâmetros de configuração do sink do Kafka
- Análise aprofundada do Kafka Connect – Conector de origem JDBC
- Análise aprofundada do JDBC Sink do Kafka Connect: trabalhando com chaves primárias
- Kafka Connect em ação: JDBC Sink - para quem prefere assistir em vez de ler.
- Análise aprofundada do Kafka Connect – Conversores e serialização explicados