Versões compatíveis do Postgres
O ClickPipes é compatível com o Postgres 12 e versões posteriores.
Habilitar a replicação lógica
-
Para habilitar a replicação na sua instância do Postgres, precisamos garantir que as seguintes configurações estejam definidas:
wal_level = logicalPara verificar isso, você pode executar o seguinte comando SQL:
SHOW wal_level;A saída deve ser
logicalpor padrão. Caso não seja, faça login no console do PlanetScale, vá paraCluster configuration->Parameterse role para baixo atéWrite-ahead logpara alterá-lo.

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

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:
-
Crie um usuário dedicado para o ClickPipes:
CREATE USER clickpipes_user PASSWORD 'some-password'; -
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; -
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 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
- 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á serclickpipes_user.branch, em quebranchse refere ao "id" da branch atual do PlanetScale Postgres. Para identificar isso rapidamente, você pode consultar o nome de usuário do usuáriopostgresque usou anteriormente para criar o usuário; a parte após o ponto será o id da branch. - Não use a porta
PSBouncer(atualmente6432) para pipes de CDC que se conectam ao PlanetScale Postgres; é obrigatório usar a porta padrão5432. Qualquer uma das portas pode ser usada para pipes somente de carga inicial. - 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.