Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Guia de configuração do PlanetScale para Postgres como fonte

Versões compatíveis do Postgres

O ClickPipes é compatível com o Postgres 12 e versões posteriores.

Habilitar a replicação lógica

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

    wal_level = logical

    Para verificar isso, você pode executar o seguinte comando SQL:

    SHOW wal_level;

    A saída deve ser logical por padrão. Caso não seja, faça login no console do PlanetScale, vá para Cluster configuration->Parameters e role para baixo até Write-ahead log para alterá-lo.

Ajustando wal_level no console do PlanetScale
  1. Além disso, é recomendável aumentar a configuração max_slot_wal_keep_size em relação ao valor padrão de 4GB. Isso também é feito no console do PlanetScale, acessando Cluster configuration->Parameters e, em seguida, rolando para baixo até Write-ahead log. Para ajudar a determinar o novo valor, consulte aqui.
Ajustando max_slot_wal_keep_size no console do PlanetScale

Criando um usuário com permissões e publicação

Conecte-se à sua instância do PlanetScale Postgres usando o usuário padrão postgres.<...> e execute os comandos a seguir:

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

    CREATE USER clickpipes_user PASSWORD 'some-password';
  2. Conceda acesso de somente leitura no nível do esquema ao usuário criado na etapa anterior. O exemplo a seguir mostra as permissões para o esquema public. Repita esses comandos para cada esquema 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 sobrecarga de 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 esquema 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.

Ressalvas

  1. Para se conectar ao PlanetScale Postgres, é preciso acrescentar a branch atual ao nome de usuário criado acima. Por exemplo, se o usuário criado se chamar clickpipes_user, o usuário real informado durante a criação do ClickPipe deverá ser clickpipes_user.branch, em que branch se refere ao "id" da branch atual do PlanetScale Postgres. Para identificar isso rapidamente, você pode consultar o nome de usuário do usuário postgres que usou anteriormente para criar o usuário; a parte após o ponto será o id da branch.
  2. Não use a porta PSBouncer (atualmente 6432) para pipes de CDC que se conectam ao PlanetScale Postgres; é obrigatório usar a porta padrão 5432. Qualquer uma das portas pode ser usada para pipes somente de carga inicial.
  3. Certifique-se de se conectar apenas à instância primária; no momento, não há suporte para conexão com instâncias de réplica.

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. Anote os detalhes da conexão usados ao configurar sua instância do Postgres, pois você vai precisar deles durante o processo de criação do ClickPipe.

Navigation