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

Настройка источника 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 Postgres как администратор и выполните следующие команды:

  1. Создайте выделенного пользователя для ClickPipes:
CREATE USER clickpipes_user PASSWORD 'some-password';
  1. Предоставьте права на схему. Следующий пример показывает права для схемы 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;
  1. Предоставьте права на репликацию:
GRANT rds_replication TO clickpipes_user;
  1. Создайте публикацию для репликации:
CREATE PUBLICATION clickpipes_publication FOR ALL TABLES;

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

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

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

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

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

Обходные пути для RDS Proxy

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

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

Что дальше?

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