Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Como migrar para o ClickHouse usando o clickhouse-local

Migrando o ClickHouse autogerenciado

Você pode usar o ClickHouse ou, mais especificamente, o clickhouse-local como uma ferramenta de ETL para migrar dados do seu sistema de banco de dados atual para o ClickHouse Cloud, desde que, para esse sistema, exista um motor de integração fornecido pelo ClickHouse ou uma função de tabela, ou que haja um JDBC driver ou ODBC driver fornecido pelo respectivo fornecedor.

Às vezes, chamamos esse método de migração de método "pivot", porque ele usa um ponto intermediário para mover os dados do banco de dados de origem para o banco de dados de destino. Por exemplo, esse método pode ser necessário se, por requisitos de segurança, apenas conexões de saída forem permitidas em uma rede privada ou interna e, portanto, você precise extrair os dados do banco de dados de origem com o clickhouse-local e, em seguida, enviar os dados para um banco de dados ClickHouse de destino, com o clickhouse-local atuando como ponto intermediário.

O ClickHouse fornece motores de integração e funções de tabela (que criam motores de integração em tempo de execução) para MySQL, PostgreSQL, MongoDB e SQLite. Para todos os outros sistemas de banco de dados populares, há JDBC driver ou ODBC driver disponível por meio do fornecedor do sistema.

O que é clickhouse-local?

Migrando ClickHouse autogerenciado

Normalmente, o ClickHouse é executado na forma de um cluster, em que várias instâncias do engine de banco de dados ClickHouse são executadas de maneira distribuída em diferentes servidores.

Em um único servidor, o engine de banco de dados ClickHouse é executado como parte do programa clickhouse-server. O acesso ao banco de dados (caminhos, usuários, segurança, …) é configurado em um arquivo de configuração do servidor.

A ferramenta clickhouse-local permite usar o engine de banco de dados ClickHouse de forma isolada, como um utilitário de linha de comando, para processamento extremamente rápido de dados SQL com um grande volume de entradas e saídas, sem precisar configurar e iniciar um servidor ClickHouse.

Instalando o clickhouse-local

Você precisa de uma máquina host para o clickhouse-local que tenha acesso de rede tanto ao seu sistema de banco de dados de origem atual quanto ao seu serviço de destino no ClickHouse Cloud.

Nessa máquina host, baixe a compilação apropriada do clickhouse-local com base no sistema operacional do seu computador:

  1. A forma mais simples de baixar o clickhouse-local é executar o seguinte comando:
curl https://clickhouse.com/ | sh
  1. Execute o clickhouse-local (ele apenas imprimirá a versão):
./clickhouse-local
Gerenciar sua IP Access List

Na lista de serviços do ClickHouse Cloud, escolha o serviço com o qual você vai trabalhar e vá para Configurações. Se a IP Access List não incluir o endereço IP ou o intervalo de IPs do sistema remoto que precisa se conectar ao seu serviço do ClickHouse Cloud, você pode resolver o problema com Adicionar IPs:

Verifique se o serviço permite tráfego do seu endereço IP na IP Access List

Adicione o endereço IP individual ou o intervalo de endereços que precisam se conectar ao seu serviço do ClickHouse Cloud. Ajuste o formulário conforme necessário e depois clique em Salvar.

Adicione seu endereço IP atual à IP Access List no ClickHouse Cloud

Exemplo: Migração de MySQL para ClickHouse Cloud com um motor de integração

Usaremos o motor de tabela de integração (criado dinamicamente pela função de tabela mysql) para ler dados do banco de dados MySQL de origem e usaremos a função de tabela remoteSecure para gravar os dados em uma tabela de destino no seu serviço ClickHouse Cloud.

Migrando o ClickHouse autogerenciado

No serviço de destino do ClickHouse Cloud:

Crie o banco de dados de destino:

  CREATE DATABASE db

Crie uma tabela de destino com um esquema equivalente ao da tabela do MySQL:

  CREATE TABLE db.table ...

Na máquina host do clickhouse-local:

Execute o clickhouse-local usando a consulta de migração:

  ./clickhouse-local --query "
INSERT INTO FUNCTION
remoteSecure('HOSTNAME.clickhouse.cloud:9440', 'db.table', 'default', 'PASS')
SELECT * FROM mysql('host:port', 'database', 'table', 'user', 'password');"
Navigation