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: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.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 start3
Baixe o driver JDBC do ClickHouse
- Acesse a página de releases do driver JDBC do ClickHouse no GitHub e procure a versão mais recente do JDBC
- 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 - 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
- Para configurar um Controller Service no Apache NiFi, acesse a página NiFi Flow Configuration clicando no botão de “engrenagem”
-
Selecione a aba Controller Services e adicione um novo Controller Service clicando no botão
+no canto superior direito -
Procure por
DBCPConnectionPoole clique no botão “Add” -
O
DBCPConnectionPoolrecém-adicionado ficará no estado Invalid por padrão. Clique no botão de “engrenagem” para iniciar a configuração - Na seção “Properties”, insira os seguintes valores
- Na seção Settings, altere o nome do Controller Service para “ClickHouse JDBC” para facilitar a identificação
-
Ative o Controller Service
DBCPConnectionPoolclicando no botão de “raio” e depois no botão “Enable”
- Verifique a aba Controller Services e confirme que o Controller Service está ativado
5
Ler dados de uma tabela usando o processador ExecuteSQL
-
Adicione um processador
ExecuteSQL, junto com os processadores upstream e downstream apropriados -
Na seção “Properties” do processador
ExecuteSQL, insira os seguintes valores -
Inicie o processador
ExecuteSQL -
Para confirmar que a consulta foi processada com sucesso, inspecione um dos
FlowFilena fila de saída -
Mude a visualização para “formatted” para ver o resultado do
FlowFilede saída
6
Grave em uma tabela usando o processador MergeRecord e PutDatabaseRecord
-
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 -
Na seção “Properties” do processador
MergeRecord, insira os seguintes valores -
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 -
Na seção “Properties” do processador
PutDatabaseRecord, insira os seguintes valores -
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. - Parabéns - você carregou seus dados no ClickHouse com sucesso usando o Apache NiFi !