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.
Pré-requisitos
- Acesso ao seu banco de dados PostgreSQL de origem.
pg_dumpepg_restoreinstalados 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:

Eis o ambiente com que vamos trabalhar:
- Duas tabelas -
eventseusers.eventstem um milhão de linhas, euserstem mil linhas. eventstem 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-dumpAqui:
- 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 directoryespecifica que queremos o dump no formato de diretório, que é adequado para opg_restore.-f rds-dumpespecifica 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:

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:

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-dumpVocê 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:
--verbosefornece uma saída detalhada durante o processo de restauração.- Você também pode usar a flag
--jobsaqui para paralelizar o processo de restauração. Para mais detalhes, consulte a documentação do pg_restore.
No nosso caso, fica assim:

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:

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: