Skip to main content
Apache NiFi é um software de código aberto para gerenciamento de fluxos de trabalho, projetado para automatizar o fluxo de dados entre sistemas de software. Ele permite criar pipelines de dados de ETL e vem com mais de 300 processadores de dados. Este tutorial passo a passo mostra como conectar o Apache NiFi ao ClickHouse tanto como origem quanto como destino e como carregar um conjunto de dados de exemplo.
1

Reúna as informações de conexão

Para se conectar ao ClickHouse via HTTP(S), você precisa das seguintes informações: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:
botão Connect do serviço do ClickHouse Cloud
Escolha HTTPS. Os detalhes de conexão são exibidos em um comando curl de exemplo.
detalhes de conexão HTTPS do ClickHouse Cloud
Se você estiver usando ClickHouse autogerenciado, os detalhes de conexão são definidos pelo administrador do seu ClickHouse.
2

Baixe e execute o Apache NiFi

Para uma nova instalação, baixe o binário em https://nifi.apache.org/download.html e inicie executando ./bin/nifi.sh start
3

Baixe o driver JDBC do ClickHouse

  1. Acesse a página de releases do driver JDBC do ClickHouse no GitHub e procure a versão mais recente do JDBC
  2. Na release, clique em “Show all xx assets” e procure o arquivo JAR que contenha a palavra-chave “shaded” ou “all”, por exemplo, clickhouse-jdbc-0.5.0-all.jar
  3. Coloque o arquivo JAR em uma pasta acessível ao Apache NiFi e anote o caminho absoluto
4

Adicione o Controller Service DBCPConnectionPool e configure suas propriedades

  1. Para configurar um Controller Service no Apache NiFi, acesse a página NiFi Flow Configuration clicando no botão de “engrenagem”
  2. Selecione a aba Controller Services e adicione um novo Controller Service clicando no botão + no canto superior direito
  3. Procure por DBCPConnectionPool e clique no botão “Add”
  4. O DBCPConnectionPool recém-adicionado ficará no estado Invalid por padrão. Clique no botão de “engrenagem” para iniciar a configuração
  5. Na seção “Properties”, insira os seguintes valores
  1. Na seção Settings, altere o nome do Controller Service para “ClickHouse JDBC” para facilitar a identificação
  2. Ative o Controller Service DBCPConnectionPool clicando no botão de “raio” e depois no botão “Enable”
  3. Verifique a aba Controller Services e confirme que o Controller Service está ativado
5

Ler dados de uma tabela usando o processador ExecuteSQL

  1. Adicione um processador ExecuteSQL, junto com os processadores upstream e downstream apropriados
  2. Na seção “Properties” do processador ExecuteSQL, insira os seguintes valores
  3. Inicie o processador ExecuteSQL
  4. Para confirmar que a consulta foi processada com sucesso, inspecione um dos FlowFile na fila de saída
  5. Mude a visualização para “formatted” para ver o resultado do FlowFile de saída
6

Grave em uma tabela usando MergeRecord e PutDatabaseRecord processor

  1. Para gravar várias linhas em um único insert, primeiro é necessário mesclar vários registros em um único registro. Isso pode ser feito usando o processador MergeRecord
  2. Na seção “Properties” do processador MergeRecord, insira os seguintes valores
  3. Para confirmar que vários registros foram mesclados em um só, examine a entrada e a saída do processador MergeRecord. Observe que a saída é um array com vários registros de entrada Entrada Saída
  4. Na seção “Properties” do processador PutDatabaseRecord, insira os seguintes valores
  5. Para confirmar que cada insert contém várias linhas, verifique se a contagem de linhas na tabela está aumentando em pelo menos o valor de “Número mínimo de registros” definido em MergeRecord.
  6. Parabéns - você carregou seus dados no ClickHouse com sucesso usando o Apache NiFi !
Última modificação em 24 de julho de 2026