Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Guía de configuración del origen RDS Postgres

Versiones compatibles de Postgres

ClickPipes es compatible con Postgres 12 y versiones posteriores.

Habilitar la replicación lógica

Puedes omitir esta sección si tu instancia de RDS ya tiene configurada la siguiente opción:

  • rds.logical_replication = 1

Esta opción suele venir preconfigurada si antes usaste otra herramienta de replicación de datos.

postgres=> SHOW rds.logical_replication ;
 rds.logical_replication
-------------------------
 on
(1 row)

Si aún no está configurado, sigue estos pasos:

  1. Crea un nuevo grupo de parámetros para tu versión de Postgres con la configuración requerida:
    • Establece rds.logical_replication en 1
¿Dónde encontrar los grupos de parámetros en RDS?
Cambiar rds.logical_replication
  1. Aplica el nuevo grupo de parámetros a tu base de datos de RDS Postgres
Modificar RDS Postgres con el nuevo grupo de parámetros
  1. Reinicia tu instancia de RDS para aplicar los cambios
Reiniciar RDS Postgres

Configurar el usuario de base de datos

Conéctese a su instancia de RDS Postgres como usuario administrador y ejecute los siguientes comandos:

  1. Cree un usuario dedicado para ClickPipes:

    CREATE USER clickpipes_user PASSWORD 'some-password';
  2. Conceda acceso de solo lectura a nivel de esquema al usuario que creó en el paso anterior. El siguiente ejemplo muestra los permisos para el esquema public. Repita estos comandos para cada esquema que contenga tablas que quiera 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 privilegios de replicación al usuario:

    GRANT rds_replication TO clickpipes_user;
  4. Cree una publicación con las tablas que quiera replicar. Recomendamos encarecidamente incluir en la publicación solo las tablas que necesite para evitar una sobrecarga de rendimiento.

  • Para crear una publicación para tablas específicas:

    CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;
    • Para crear una publicación para todas las tablas de un esquema específico:

      CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";

La publicación clickpipes define el conjunto de tablas cuyos eventos de cambio se transmitirán a ClickPipes. Recomendamos no usar FOR ALL TABLES a menos que tenga la intención de replicar todas las tablas, ya que incluir tablas innecesarias incrementa el tráfico de WAL desde Postgres hacia ClickPipes y reduce la eficiencia general de la replicación.

Uso de autenticación con IAM (opcional)

Instead of a password, you can authenticate the ClickPipes user with an AWS IAM role. This lets ClickPipes connect to your Amazon RDS instance without storing database credentials.

Enable IAM authentication

  1. Log in to your AWS account and go to the RDS instance you want to configure.
  2. Click Modify.
  3. Scroll to the Database authentication section.
  4. Select Password and IAM database authentication.
  5. Click Continue.
  6. Review the changes and select Apply immediately.

Create the ClickPipes user

Create the ClickPipes user with IAM authentication enabled, then grant it the same schema and replication privileges shown above:

CREATE USER clickpipes_iam_user;
GRANT rds_iam TO clickpipes_iam_user;

Obtain the ClickHouse service IAM role ARN

  1. Log in to your ClickHouse Cloud account.
  2. Select the ClickHouse service you want to connect.
  3. Select the Settings tab.
  4. Scroll to the Network security information section at the bottom of the page.
  5. Copy the service's Service role ID (IAM) value, shown below.
Service role ID (IAM) value in the Network security information section

This value is your {ClickHouse_IAM_ARN} — the role ClickPipes uses to access your RDS instance.

Obtain the resource ID

  1. Log in to your AWS account and go to the RDS instance you want to configure.
  2. Select the Configuration tab.
  3. Note the Resource ID value — it looks like db-xxxxxxxxxxxxxx. This is your {RDS_RESOURCE_ID}, which you reference in the permissions policy.

Create the IAM role

  1. Log in to your AWS account with an IAM user that has permission to create and manage IAM roles.
  2. Open the IAM console.
  3. Create a new IAM role with the following trust and permissions policies.

    Trust policy (replace {ClickHouse_IAM_ARN} with the IAM role ARN of your ClickHouse instance):

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "{ClickHouse_IAM_ARN}"
          },
          "Action": [
            "sts:AssumeRole",
            "sts:TagSession"
          ]
        }
      ]
    }

    Permissions policy (replace {RDS_RESOURCE_ID} with the resource ID of your RDS instance, {RDS_REGION} with its region, and {AWS_ACCOUNT} with your AWS account ID):

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "rds-db:connect"
          ],
          "Resource": [
            "arn:aws:rds-db:{RDS_REGION}:{AWS_ACCOUNT}:dbuser:{RDS_RESOURCE_ID}/clickpipes_iam_user"
          ]
        }
      ]
    }
  4. Once the role is created, copy its ARN. This is your {RDS_ACCESS_IAM_ROLE_ARN}.

You can now use this IAM role to authenticate with your RDS instance from ClickPipes.

Configurar el acceso de red

Control de acceso basado en IP

Si desea restringir el tráfico a su instancia de RDS, añada las IPs NAT estáticas documentadas a las reglas de entrada del grupo de seguridad de su RDS.

¿Dónde encontrar el grupo de seguridad en RDS Postgres?
Editar las reglas de entrada del grupo de seguridad anterior

Para conectarse a su instancia de RDS a través de una red privada, puede usar AWS PrivateLink. Siga nuestra guía de configuración de AWS PrivateLink para ClickPipes para establecer la conexión.

Soluciones alternativas para RDS Proxy

RDS Proxy no admite conexiones de replicación lógica. Si tienes direcciones IP dinámicas en RDS y no puedes usar un nombre DNS ni una función Lambda, aquí tienes algunas alternativas:

  1. Con una tarea cron, resuelve periódicamente la IP del endpoint de RDS y actualiza el NLB si cambia.
  2. Usando notificaciones de eventos de RDS con EventBridge/SNS: desencadena actualizaciones automáticamente mediante las notificaciones de eventos de AWS RDS.
  3. EC2 fija: despliega una instancia de EC2 para que actúe como servicio de sondeo o proxy basado en IP.
  4. Automatiza la gestión de direcciones IP con herramientas como Terraform o CloudFormation.

¿Qué sigue?

Ahora puedes crear tu ClickPipe y empezar a ingestar datos desde tu instancia de Postgres hacia ClickHouse Cloud. Asegúrate de anotar los datos de conexión que usaste al configurar tu instancia de Postgres, ya que los necesitarás durante el proceso de creación de ClickPipe.

Navigation