Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Migre para o ClickHouse Managed Postgres usando pg_dump e pg_restore

Este guia fornece instruções passo a passo sobre como migrar seu banco de dados PostgreSQL para o ClickHouse Managed Postgres usando os utilitários pg_dump e pg_restore.

Beta

Pré-requisitos

  • Acesso ao seu banco de dados PostgreSQL de origem.
  • pg_dump e pg_restore instalados na máquina local. Eles normalmente são incluídos nas instalações do PostgreSQL. Caso contrário, você pode baixá-los no site oficial do PostgreSQL.

A configuração

Para seguir as etapas, vamos usar como exemplo um banco de dados Postgres no RDS como banco de dados de origem. Algo assim:

Configuração do banco de dados PostgreSQL de origem

Eis o ambiente com que vamos trabalhar:

  • Duas tabelas - events e users. events tem um milhão de linhas, e users tem mil linhas.
  • events tem um índice.
  • Uma view sobre a tabela events.
  • Duas sequências

Crie um dump do banco de dados de origem

Agora vamos usar pg_dump para gerar um arquivo de dump com os objetos acima. É um comando simples:

pg_dump \
  -d 'postgresql://<user>:<password>@<host>:<port>/<database>' \
  --format directory \
  -f rds-dump

Aqui:

  • Substitua <user>, <password>, <host>, <port> e <database> pelas credenciais do seu banco de dados de origem. A maioria dos provedores de Postgres fornece uma string de conexão que você pode usar diretamente.
  • --format directory especifica que queremos o dump no formato de diretório, que é adequado para o pg_restore.
  • -f rds-dump especifica o diretório de saída dos arquivos de dump. Observe que esse diretório será criado automaticamente e não deve existir previamente.
  • Você também pode paralelizar o processo de dump adicionando a flag --jobs, seguida do número de jobs paralelos que deseja executar. Para mais detalhes, consulte a documentação do pg_dump.

Veja como é a execução desse comando:

Execução do comando pg_dump

Migre o dump para o ClickHouse Managed Postgres

Agora que temos o arquivo de dump, podemos restaurá-lo na nossa instância do ClickHouse Managed Postgres usando pg_restore.

Crie uma instância do ClickHouse Managed Postgres

Primeiro, certifique-se de ter uma instância do ClickHouse Managed Postgres pronta, de preferência na mesma região da instância de origem. Você pode seguir o guia rápido aqui. Veja o que vamos provisionar neste guia:

Criar instância do ClickHouse Managed Postgres

Restauração do dump

Agora, de volta à nossa máquina local, podemos usar o comando pg_restore para fazer a restauração do dump em nossa instância do ClickHouse Managed Postgres:

pg_restore \
  -d 'postgresql://<user>:<password>@<pg_clickhouse_host>:5432/<database>' \
  --verbose \
  rds-dump

Você pode obter a string de conexão da sua instância do ClickHouse Managed Postgres no console do ClickHouse Cloud, conforme explicado de forma bem simples aqui.

Aqui também há algumas flags que vale a pena observar:

  • --verbose fornece uma saída detalhada durante o processo de restauração.
  • Você também pode usar a flag --jobs aqui para paralelizar o processo de restauração. Para mais detalhes, consulte a documentação do pg_restore.

No nosso caso, fica assim:

Execução do comando pg_restore

Verifique a migração

Quando o processo de restauração for concluído, você poderá se conectar à sua instância do ClickHouse Managed Postgres e verificar se todos os seus dados e objetos foram migrados com sucesso. Você pode usar qualquer cliente PostgreSQL para se conectar e executar consultas. Veja como fica nossa configuração do ClickHouse Managed Postgres após a migração:

Configuração do banco de dados de destino do ClickHouse Managed Postgres

Vemos que todas as nossas tabelas, índices, views e sequências estão intactos, e que as contagens de dados correspondem.

Considerações

  • Certifique-se de que as versões do PostgreSQL dos bancos de dados de origem e de destino sejam compatíveis. Usar uma versão do pg_dump mais antiga que a do servidor de origem pode causar ausência de recursos ou problemas na restauração. O ideal é usar a mesma versão principal do pg_dump da origem ou uma versão mais recente.
  • Bancos de dados grandes podem levar bastante tempo para gerar o dump e restaurar. Planeje-se adequadamente para minimizar a indisponibilidade e considere usar dumps/restaurações em paralelo (--jobs) quando houver suporte.
  • Observe que pg_dump / pg_restore não replicam todos os objetos relacionados ao banco de dados nem todo o estado de runtime. Isso inclui roles e associações de roles, slots de replicação, configuração no nível do servidor (por exemplo, postgresql.conf, pg_hba.conf), tablespaces e estatísticas de runtime.

Próximos passos

Parabéns! Você migrou seu banco de dados PostgreSQL com sucesso para o ClickHouse Managed Postgres usando pg_dump e pg_restore. Agora, está tudo pronto para explorar os recursos do ClickHouse Managed Postgres e sua integração com o ClickHouse. Aqui está um guia de início rápido de 10 minutos para você começar:

Navigation