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

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

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

ClickPipes поддерживает Aurora PostgreSQL-Compatible Edition версии 12 и выше.

Включение логической репликации

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

  • 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. Создайте новую группу параметров для вашей версии Aurora PostgreSQL со следующими настройками:
    • Установите rds.logical_replication в значение 1
    • Установите wal_sender_timeout в значение 0
Где найти группы параметров в Aurora
Изменение rds.logical_replication
Изменение wal_sender_timeout
  1. Примените новую группу параметров к кластеру Aurora PostgreSQL
Изменение конфигурации Aurora PostgreSQL с новой группой параметров
  1. Перезагрузите кластер Aurora, чтобы применить изменения
Перезагрузка Aurora PostgreSQL

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

Подключитесь к экземпляру записывающего узла Aurora 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. Создайте publication с таблицами, которые вы хотите реплицировать. Настоятельно рекомендуется включать в публикацию только те таблицы, которые вам нужны, чтобы избежать лишних накладных расходов и деградации производительности.

    Примечание

    Любая таблица, включенная в публикацию, должна либо иметь определённый первичный ключ, либо для неё должен быть настроен параметр replica identity со значением FULL. См. раздел Postgres FAQs для получения рекомендаций по выбору области публикаций.

    • Чтобы создать публикацию для конкретных таблиц:

      CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;
      
    • Чтобы создать публикацию для всех таблиц в конкретной схеме:

      CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
      

    Публикация clickpipes будет содержать набор событий изменений, генерируемых из указанных таблиц, и позже будет использоваться для приёма потока репликации.

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

Управление доступом по IP-адресам

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

Где найти группу безопасности в Aurora PostgreSQL?
Редактирование inbound rules для указанной выше группы безопасности

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

Особенности Aurora

При настройке ClickPipes с Aurora PostgreSQL учитывайте следующие моменты:

  1. Endpoint подключения: Всегда подключайтесь к writer endpoint кластера Aurora, так как для логической репликации требуется доступ на запись для создания replication slots, и подключение должно осуществляться к первичному (primary) инстансу.

  2. Обработка отказа (failover): В случае failover Aurora автоматически повысит один из reader-инстансов до роли нового writer. ClickPipes обнаружит разрыв соединения и попытается переподключиться к writer endpoint, который теперь будет указывать на новый primary-инстанс.

  3. Global Database: Если вы используете Aurora Global Database, следует подключаться к writer endpoint первичного региона, поскольку межрегиональная репликация уже обрабатывает передачу данных между регионами.

  4. Особенности хранилища: Слой хранения Aurora является общим для всех инстансов в кластере, что может обеспечивать лучшую производительность логической репликации по сравнению со стандартным RDS.

Работа с динамическими endpoint'ами кластера

Хотя Aurora предоставляет стабильные endpoint'ы, которые автоматически маршрутизируют трафик к соответствующему инстансу, ниже приведены дополнительные подходы для обеспечения стабильного подключения:

  1. Для высокодоступных конфигураций настройте приложение на использование writer endpoint Aurora, который автоматически указывает на текущий primary-инстанс.

  2. При использовании межрегионной репликации рассмотрите возможность настройки отдельных ClickPipes для каждого региона, чтобы снизить задержки и повысить отказоустойчивость.

Что дальше?

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