Pular para o conteúdo principal
Este guia mostra como migrar de um servidor ClickHouse autogerenciado para o ClickHouse Cloud, além de como migrar entre serviços do ClickHouse Cloud. A função remoteSecure é usada em consultas SELECT e INSERT para permitir o acesso a servidores remotos do ClickHouse, o que torna a migração de tabelas tão simples quanto escrever uma consulta INSERT INTO com um SELECT embutido.

Migrando de ClickHouse autogerenciado para ClickHouse Cloud

Independentemente de a tabela de origem estar em shards e/ou ser replicada, no ClickHouse Cloud você só precisa criar uma tabela de destino (pode omitir o parâmetro Engine dessa tabela; SharedMergeTree será selecionado automaticamente como o mecanismo da tabela), e o ClickHouse Cloud cuidará automaticamente do escalonamento vertical e horizontal. Você não precisa se preocupar com como replicar e dividir a tabela em shards. Neste exemplo, o servidor ClickHouse autogerenciado é a origem e o serviço ClickHouse Cloud é o destino.

Visão geral

O processo é:
  1. Adicione um usuário somente leitura ao serviço de origem
  2. Duplique a estrutura da tabela de origem no serviço de destino
  3. Extraia os dados da origem para o destino ou envie os dados da origem, dependendo da conectividade de rede da origem
  4. Remova o servidor de origem da Lista de acesso por IP no destino (se aplicável)
  5. Remova o usuário somente leitura do serviço de origem

Migração de tabelas de um sistema para outro:

Este exemplo migra uma tabela de um servidor ClickHouse autogerenciado para o ClickHouse Cloud.
CompatibilidadeSe você estiver percebendo diferenças de comportamento entre sua implantação autogerenciada do ClickHouse e seu serviço do ClickHouse Cloud, isso pode estar relacionado à configuração de compatibilidade. No Cloud, a compatibilidade é definida quando um serviço é criado e não muda no nível do serviço, para garantir que os clientes tenham um comportamento consistente mesmo à medida que o serviço é atualizado. Se quiser alterar a compatibilidade, você pode solicitar isso por meio do suporte.

No sistema ClickHouse de origem (o sistema que atualmente armazena os dados)

  • Adicione um usuário com permissão somente de leitura para ler a tabela de origem (db.table neste exemplo)
  • Copie a definição da tabela

No sistema ClickHouse Cloud de destino:

  • Crie o banco de dados de destino:
  • Usando a instrução CREATE TABLE da origem, crie o destino.
Altere o ENGINE para ReplicatedMergeTree sem nenhum parâmetro ao executar a instrução CREATE. O ClickHouse Cloud sempre replica as tabelas e fornece os parâmetros corretos. Mantenha, porém, as cláusulas ORDER BY, PRIMARY KEY, PARTITION BY, SAMPLE BY, TTL e SETTINGS.
  • Use a função remoteSecure para extrair os dados a partir da origem autogerenciada
Se o sistema de origem não estiver disponível em redes externas, você poderá enviar os dados em vez de extraí-los, pois a função remoteSecure funciona tanto para consultas quanto para inserções. Veja a próxima opção.
  • Use a função remoteSecure para enviar os dados para o serviço ClickHouse Cloud
Adicione o sistema remoto à lista de acesso por IP do seu serviço ClickHouse CloudPara que a função remoteSecure se conecte ao seu serviço ClickHouse Cloud, o endereço IP do sistema remoto precisará estar autorizado na lista de acesso por IP. Expanda Manage your lista de acesso por IP abaixo desta dica para obter mais informações.
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: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.

Migração entre serviços do ClickHouse Cloud

Alguns casos de uso para migrar dados entre serviços do ClickHouse Cloud:
  • Migrar dados de um backup restaurado
  • Copiar dados de um serviço Development para um serviço de staging (ou de staging para produção)
Neste exemplo, há dois serviços do ClickHouse Cloud, que serão chamados de origem e destino. Os dados serão extraídos da origem para o destino. Embora você também possa optar por enviar, a extração é mostrada porque usa um usuário somente leitura. Há algumas etapas na migração:
  1. Identifique um serviço do ClickHouse Cloud como a origem e o outro como o destino
  2. Adicione um usuário somente leitura ao serviço de origem
  3. Duplique a estrutura da tabela de origem no serviço de destino
  4. Permita temporariamente o acesso por IP ao serviço de origem
  5. Copie os dados da origem para o destino
  6. Restabeleça a lista de acesso por IP no serviço de destino
  7. Remova o usuário somente leitura do serviço de origem

Adicione um usuário somente leitura ao serviço de origem

  • Adicione um usuário somente leitura que possa ler a tabela de origem (db.table neste exemplo)
  • Copie a definição da tabela

Duplique a estrutura da tabela no serviço de destino

No destino, crie o banco de dados, caso ele ainda não exista:
  • Crie o banco de dados de destino:
  • Usando a instrução CREATE TABLE da origem, crie a tabela no destino. No destino, crie a tabela usando a saída de select create_table_query... da origem:

Permita acesso remoto ao serviço de origem

Para extrair dados da origem para o destino, o serviço de origem precisa permitir conexões. Desative temporariamente a funcionalidade “lista de acesso por IP” no serviço de origem.
Se você pretende continuar usando o serviço ClickHouse Cloud de origem, exporte a lista de acesso por IP atual para um arquivo JSON antes de alterar a configuração para permitir acesso de qualquer lugar; assim, você poderá importar a lista de acesso novamente após a migração dos dados.
Modifique a lista de permissões e permita acesso de Anywhere temporariamente. Consulte a documentação de lista de acesso por IP para mais detalhes.

Copie os dados da origem para o destino

  • Use a função remoteSecure para extrair os dados do serviço de origem no ClickHouse Cloud Conecte-se ao destino. Execute este comando no serviço de destino no ClickHouse Cloud:
  • Verifique os dados no serviço de destino

Restabeleça a lista de acesso por IP na origem

Se você exportou a lista de acesso antes, pode reimportá-la usando Share; caso contrário, adicione novamente os IPs à lista de acesso.

Remova o usuário somente leitura exporter

  • Altere a lista de acesso por IP do serviço para restringir o acesso
Última modificação em 19 de junho de 2026