Перейти к основному содержанию
Перейти к основному содержанию

Руководство по настройке источника данных RDS Postgres

Поддерживаемые версии Postgres

ClickPipes поддерживает Postgres версии 12 и выше.

Включите логическую репликацию

Вы можете пропустить этот раздел, если в экземпляре базы данных RDS уже настроены следующие параметры:

  • rds.logical_replication = 1
  • wal_sender_timeout = 0

Как правило, эти параметры уже заданы, если вы ранее использовали другой инструмент репликации данных.

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

postgres=> SHOW wal_sender_timeout ;
 wal_sender_timeout
--------------------
 0
(1 row)

Если вы еще не настроили это, выполните следующие шаги:

  1. Создайте новую группу параметров для используемой версии Postgres со следующими настройками:
    • Установите значение rds.logical_replication равным 1
    • Установите значение wal_sender_timeout равным 0
Где найти группы параметров в RDS?
Изменение rds.logical_replication
Изменение wal_sender_timeout
  1. Примените новую группу параметров к вашей базе данных RDS Postgres
Изменение RDS Postgres с новой группой параметров
  1. Перезапустите экземпляр RDS, чтобы применить изменения
Перезапуск RDS Postgres

Настройка пользователя базы данных

Подключитесь к вашему экземпляру RDS PostgreSQL под учетной записью администратора и выполните следующие команды:

  1. Создайте отдельную учетную запись пользователя для ClickPipes:

    CREATE USER clickpipes_user PASSWORD 'some-password';
    
  2. Предоставьте права на схему. В следующем примере показаны права для схемы public. Повторите эти команды для каждой схемы, которую вы хотите реплицировать:

    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. Предоставьте привилегии репликации:

    GRANT rds_replication TO clickpipes_user;
    
  4. Создайте публикацию для репликации:

    CREATE PUBLICATION clickpipes_publication FOR ALL TABLES;
    

Настройка сетевого доступа

Контроль доступа на основе IP-адресов

Если вы хотите ограничить трафик к вашему экземпляру RDS, добавьте задокументированные статические IP-адреса NAT в Inbound rules вашей группы безопасности RDS.

Где найти группу безопасности в RDS Postgres?
Редактирование Inbound rules для указанной группы безопасности

Чтобы подключаться к вашему экземпляру RDS через частную сеть, можно использовать AWS PrivateLink. Следуйте нашему руководству по настройке AWS PrivateLink для ClickPipes, чтобы настроить подключение.

Обходные решения для RDS Proxy

RDS Proxy не поддерживает подключения для логической репликации. Если у вас динамические IP-адреса в RDS и вы не можете использовать DNS-имя или функцию AWS Lambda, рассмотрите следующие альтернативы:

  1. С помощью cron-задачи периодически определяйте IP-адрес конечной точки RDS и обновляйте NLB, если он изменился.
  2. Использование RDS Event Notifications с EventBridge/SNS: автоматически инициируйте обновления с помощью уведомлений о событиях AWS RDS.
  3. Постоянный экземпляр EC2: разверните экземпляр EC2, который будет выступать в роли сервиса опроса или прокси на основе IP-адресов.
  4. Автоматизируйте управление IP-адресами с помощью таких инструментов, как Terraform или CloudFormation.

Что дальше?

Теперь вы можете создать ClickPipe и начать приём данных из вашего экземпляра Postgres в ClickHouse Cloud. Обязательно сохраните параметры подключения, которые вы использовали при настройке этого экземпляра Postgres, — они понадобятся вам при создании ClickPipe.