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.
- 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.
Para seguir as etapas, vamos usar como exemplo um banco de dados Postgres no RDS como banco de dados de origem. Algo assim:
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.
Você pode testar esse processo uma vez para ter uma noção de quanto tempo ele leva e do tamanho do dump.
Veja como é a execução desse comando:
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 Managed Postgres
Primeiro, certifique-se de ter uma instância do 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:
Agora, de volta à nossa máquina local, podemos usar o comando pg_restore para restaurar o dump em nossa instância do 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 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 restore.
- Você também pode usar a flag
--jobs aqui para paralelizar o processo de restore. Para mais detalhes, consulte a documentação do pg_restore.
No nosso caso, fica assim:
Quando o processo de restauração for concluído, você poderá se conectar à sua instância do 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 Managed Postgres após a migração:
Vemos que todas as nossas tabelas, índices, views e sequências estão intactos, e que as contagens de dados correspondem.
- 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.
Parabéns! Você migrou com sucesso seu banco de dados PostgreSQL para o ClickHouse Managed Postgres usando pg_dump e pg_restore. Agora você já pode explorar os recursos do Managed Postgres e a integração com o ClickHouse. Aqui está um guia de início rápido de 10 minutos para ajudar você a começar: