O ClickPipes oferece suporte ao Postgres 12 e versões posteriores.
Habilite a replicação lógica
-
Para habilitar a replicação na sua instância do Postgres, precisamos garantir que as configurações abaixo estejam definidas:
wal_level = logicalPara verificar isso, execute o seguinte comando SQL:
SHOW wal_level;A saída deve ser
logical. Caso contrário, execute:ALTER SYSTEM SET wal_level = logical; -
Além disso, recomenda-se definir as seguintes configurações na instância do Postgres:
max_wal_senders > 1 max_replication_slots >= 4Para verificar isso, execute os seguintes comandos SQL:
SHOW max_wal_senders; SHOW max_replication_slots;Se os valores não corresponderem aos recomendados, execute os seguintes comandos SQL para defini-los:
ALTER SYSTEM SET max_wal_senders = 10; ALTER SYSTEM SET max_replication_slots = 10; -
Se você tiver feito alguma alteração na configuração, conforme mencionado acima, será NECESSÁRIO REINICIAR a instância do Postgres para que as alterações entrem em vigor.
Criando um usuário com permissões e publicação
Conecte-se à sua instância do Postgres como um usuário administrador e execute os seguintes comandos:
-
Crie um usuário dedicado para o ClickPipes:
CREATE USER clickpipes_user PASSWORD 'some-password'; -
Conceda ao usuário criado na etapa anterior acesso somente leitura no nível do schema. O exemplo a seguir mostra as permissões para o schema
public. Repita esses comandos para cada schema que contenha tabelas que você deseja replicar:GRANT USAGE ON SCHEMA "public" TO clickpipes_user; GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; -
Conceda privilégios de replicação ao usuário:
ALTER USER clickpipes_user WITH REPLICATION; -
Crie uma publicação com as tabelas que você deseja replicar. Recomendamos fortemente incluir na publicação apenas as tabelas necessárias para evitar impacto no desempenho.
-
Para criar uma publicação para tabelas específicas:
CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;-
Para criar uma publicação para todas as tabelas em um schema específico:
CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
-
A publicação clickpipes define o conjunto de tabelas cujos eventos de alteração serão transmitidos ao ClickPipes. Recomendamos não usar FOR ALL TABLES, a menos que você pretenda replicar todas as tabelas, pois incluir tabelas desnecessárias aumenta o tráfego de WAL do Postgres para o ClickPipes e reduz a eficiência geral da replicação.
Habilitando conexões no pg_hba.conf para o usuário do ClickPipes
Se você estiver fazendo a configuração por conta própria, precisará permitir conexões para o usuário do ClickPipes a partir dos endereços IP do ClickPipes seguindo as etapas abaixo. Se estiver usando um serviço gerenciado, poderá fazer o mesmo seguindo a documentação do provedor.
-
Faça as alterações necessárias no arquivo
pg_hba.confpara permitir conexões para o usuário do ClickPipes a partir dos endereços IP do ClickPipes. Um exemplo de entrada no arquivopg_hba.confseria:host all clickpipes_user 0.0.0.0/0 scram-sha-256 -
Recarregue a instância do PostgreSQL para que as alterações entrem em vigor:
SELECT pg_reload_conf();
Aumente max_slot_wal_keep_size
Esta é uma alteração de configuração recomendada para garantir que transações/commits grandes não façam com que o slot de replicação seja removido.
Você pode aumentar o parâmetro max_slot_wal_keep_size da sua instância do PostgreSQL para um valor maior (pelo menos 100GB ou 102400) atualizando o arquivo postgresql.conf.
max_slot_wal_keep_size = 102400Você pode recarregar a instância do Postgres para aplicar as alterações:
SELECT pg_reload_conf();O que vem a seguir?
Agora você pode criar seu ClickPipe e começar a fazer a ingestão de dados da sua instância do Postgres para o ClickHouse Cloud. Certifique-se de anotar os detalhes de conexão que você usou ao configurar sua instância do Postgres, pois eles serão necessários durante o processo de criação do ClickPipe.