> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Configure uma instância do Postgres no Google Cloud SQL como origem para o ClickPipes

# Guia de configuração do Postgres no Google Cloud SQL como origem

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

<Info>
  Se você usar um dos provedores compatíveis (na barra lateral), consulte o guia específico desse provedor.
</Info>

<div id="supported-postgres-versions">
  ## Versões compatíveis do Postgres
</div>

Postgres 12 ou posterior

<div id="enable-logical-replication">
  ## Habilitar a replicação lógica
</div>

**Você não precisa** seguir as etapas abaixo se a configuração `cloudsql. logical_decoding` estiver ativada. Em geral, essa configuração já vem pré-configurada se você estiver migrando de outra ferramenta de replicação de dados.

1. Clique no botão **Edit** na página Overview.

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/edit.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=41907664256c058eeabd6501beeb1aa2" alt="Botão Edit no Cloud SQL Postgres" size="lg" border width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/edit.webp" />

2. Vá para Flags e altere `cloudsql.logical_decoding` para on. Essa alteração exigirá a reinicialização do servidor Postgres.

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/cloudsql_logical_decoding1.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=aa40064d1249a38d936206ebfc478d99" alt="Alterar cloudsql.logical_decoding para on" size="lg" border width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/cloudsql_logical_decoding1.webp" />

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/cloudsql_logical_decoding3.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=aac6ca6472b0e2dfa392d586fd432136" alt="Reiniciar servidor" size="lg" border width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/cloudsql_logical_decoding3.webp" />

<div id="creating-clickpipes-user-and-granting-permissions">
  ## Criando o usuário do ClickPipes e concedendo permissões
</div>

Conecte-se ao Cloud SQL Postgres usando o usuário admin e execute os comandos abaixo:

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

   ```sql theme={null}
   CREATE USER clickpipes_user PASSWORD 'some-password';
   ```

2. Conceda ao usuário criado na etapa anterior acesso de 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:

   ```sql theme={null}
   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:

   ```sql theme={null}
   ALTER USER clickpipes_user WITH REPLICATION;
   ```

4. Crie uma [publicação](https://www.postgresql.org/docs/current/logical-replication-publication.html) com as tabelas que você deseja replicar. Recomendamos fortemente incluir na publicação apenas as tabelas necessárias para evitar sobrecarga de desempenho.

<Warning>
  Qualquer tabela incluída na publicação deve ter uma **chave primária** definida *ou* ter sua **replica identity** configurada como `FULL`. Consulte as [FAQs do Postgres](/docs/pt-BR/integrations/clickpipes/postgres/faq#how-should-i-scope-my-publications-when-setting-up-replication) para orientações sobre o escopo.
</Warning>

* Para criar uma publicação para tabelas específicas:

  ```sql theme={null}
  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:

    ```sql theme={null}
    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.

[//]: # "TODO Add SSH Tunneling"

<div id="add-clickpipes-ips-to-firewall">
  ## Adicione os IPs do ClickPipes ao firewall
</div>

Siga as etapas abaixo para adicionar os IPs do ClickPipes à sua rede.

<Note>
  Se você estiver usando tunelamento SSH, precisará adicionar os [IPs do ClickPipes](/docs/pt-BR/integrations/clickpipes/home#list-of-static-ips) às regras de firewall do Jump Server/Bastion.
</Note>

1. Vá para a seção **Connections**

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/connections.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=86ce682b9778958fa8dfd1fafe020d5f" alt="Seção Connections no Cloud SQL" size="lg" border width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/connections.webp" />

2. Vá para a subseção Networking

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/connections_networking.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=a0cb300b12390f6d58c23d7f315eadbf" alt="Subseção Networking no Cloud SQL" size="lg" border width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/connections_networking.webp" />

3. Adicione os [IPs públicos do ClickPipes](/docs/pt-BR/integrations/clickpipes/home#list-of-static-ips)

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/firewall1.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=ba8049d5eb2636847b8450cfc44b69cd" alt="Adicionar redes do ClickPipes ao firewall" size="lg" border width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/firewall1.webp" />

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/firewall2.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=c4e0a67f97972621c84e4db2fe703026" alt="Redes do ClickPipes adicionadas ao firewall" size="lg" border width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/firewall2.webp" />

<div id="whats-next">
  ## O que vem a seguir?
</div>

Agora você pode [criar seu ClickPipe](/docs/pt-BR/integrations/clickpipes/postgres/index) e iniciar a ingestão de dados da sua instância do Postgres no ClickHouse Cloud.
Anote os detalhes de conexão usados ao configurar sua instância do Postgres, pois você precisará deles durante o processo de criação do ClickPipe.
