Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Guia de configuração da fonte Postgres genérico

O ClickPipes oferece suporte ao Postgres 12 e versões posteriores.

Habilite a replicação lógica

  1. Para habilitar a replicação na sua instância do Postgres, precisamos garantir que as configurações abaixo estejam definidas:

    wal_level = logical

    Para 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;
  2. Além disso, recomenda-se definir as seguintes configurações na instância do Postgres:

    max_wal_senders > 1
    max_replication_slots >= 4

    Para 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;
  3. 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:

  1. Crie um usuário dedicado para o ClickPipes:

    CREATE USER clickpipes_user PASSWORD 'some-password';
  2. 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;
  3. Conceda privilégios de replicação ao usuário:

    ALTER USER clickpipes_user WITH REPLICATION;
  4. 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.

  1. Faça as alterações necessárias no arquivo pg_hba.conf para permitir conexões para o usuário do ClickPipes a partir dos endereços IP do ClickPipes. Um exemplo de entrada no arquivo pg_hba.conf seria:

    host    all   clickpipes_user     0.0.0.0/0          scram-sha-256
  2. 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 = 102400

Você 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.

Navigation