Pré-requisitos
- Acesso ao seu banco de dados PostgreSQL de origem.
psql,pg_dumpepg_restoreinstalados na sua máquina local. Isso é necessário para criar tabelas vazias no banco de dados de destino. Essas ferramentas normalmente são incluídas nas instalações do PostgreSQL. Caso contrário, você pode baixá-las no site oficial do PostgreSQL.- Seu banco de dados de origem deve estar acessível a partir do ClickHouse Managed Postgres. Certifique-se de que todas as regras de firewall ou configurações de Security Group necessárias permitam essa conectividade. Você pode obter o IP de saída da sua instância do Managed Postgres fazendo o seguinte:
A configuração
- O banco de dados de origem deve ter
wal_leveldefinido comological. - O banco de dados de origem deve ter
max_replication_slotsdefinido para no mínimo1. - Para RDS (que este guia usa como exemplo), você precisa garantir que seu grupo de parâmetros tenha
rds.logical_replicationdefinido como1. - O usuário do banco de dados de origem deve ter o privilégio
REPLICATION. No caso do RDS, execute: - A role usada no banco de dados de destino deve ter privilégios de gravação nos objetos do banco de dados de destino:
Dump apenas do schema do banco de dados de origem
pg_dump:
- Substitua
<user>,<password>,<host>,<port>e<database>pelas credenciais do banco de dados de origem. -sespecifica que queremos um dump apenas do schema.--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.
events e users. events tem um milhão de linhas, e users tem mil linhas.
Crie uma instância do Managed Postgres
Restaurar o schema no ClickHouse Managed Postgres
pg_restore:
- Substitua
<user>,<password>,<host>,<port>e<database>pelas credenciais do seu banco de dados de destino no ClickHouse Managed Postgres. --verbosefornece uma saída detalhada durante o processo de restauração. Este comando criará todas as tabelas, índices, views e outros objetos de esquema no banco de dados de destino, sem dados.
Configurar a replicação lógica
Crie uma publication no banco de dados de origem
Criar uma publication FOR ALL TABLES pode causar sobrecarga na rede se houver muitas tabelas. Recomenda-se especificar apenas as tabelas que você deseja replicar.
Crie uma assinatura no banco de dados ClickHouse Managed Postgres de destino
Ressalvas e considerações
- A replicação lógica replica apenas alterações nos dados (INSERT, UPDATE, DELETE). Alterações de esquema (como ALTER TABLE) precisam ser tratadas separadamente.
- Garanta que a conexão de rede entre os bancos de dados de origem e destino seja estável para evitar interrupções na replicação.
- Monitore o atraso da replicação para garantir que o banco de dados de destino esteja acompanhando o de origem. Definir um valor adequado para
max_slot_wal_keep_sizeno banco de dados de origem pode ajudar a gerenciar um slot de replicação em crescimento e evitar que ele consuma espaço em disco em excesso. - Dependendo do seu caso de uso, talvez você queira configurar monitoramento e alertas para o processo de replicação.
Próximas etapas
pg_dump e pg_restore. Agora, está tudo pronto para explorar os recursos do Managed Postgres e sua integração com o ClickHouse. Aqui está um guia de início rápido de 10 minutos para ajudar você a começar: