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

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

    Примечание

    Любая таблица, включённая в публикацию, должна либо иметь определённый первичный ключ, либо иметь идентичность реплики, настроенную на 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. Конечная точка подключения: Всегда подключайтесь к конечной точке записи кластера Aurora, так как для логической репликации нужен доступ на запись для создания слотов репликации, а также подключение к основному экземпляру.

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

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

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

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

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

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

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

Что дальше?

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