Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

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

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

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

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

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

  • rds.logical_replication = 1

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

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

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

  1. Создайте новую группу параметров для вашей версии Aurora PostgreSQL с нужной настройкой:
    • Установите rds.logical_replication в значение 1
Где найти группы параметров в Aurora
Изменение rds.logical_replication
  1. Примените новую группу параметров к кластеру Aurora PostgreSQL
Изменение Aurora PostgreSQL с новой группой параметров
  1. Перезагрузите кластер Aurora, чтобы применить изменения
Перезагрузка Aurora PostgreSQL

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

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

  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 FOR TABLE table_to_replicate, table_to_replicate2;
    • Чтобы создать публикацию для всех таблиц в определённой схеме:

      CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";

Публикация clickpipes определяет набор таблиц, события изменений из которых будут передаваться в ClickPipes. Мы не рекомендуем использовать FOR ALL TABLES, если только вы действительно не планируете реплицировать все таблицы, поскольку включение лишних таблиц увеличивает объём WAL-трафика из Postgres в ClickPipes и снижает общую эффективность репликации.

Использование аутентификации IAM (необязательно)

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

Enable IAM authentication

  1. Log in to your AWS account and go to the Aurora cluster 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 Aurora cluster.

Obtain the resource ID

  1. Log in to your AWS account and go to the Aurora cluster you want to configure.
  2. Select the Configuration tab.
  3. Note the Resource ID value — it looks like cluster-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 Aurora cluster, {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 Aurora cluster from ClickPipes.

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

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

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

Где найти группу безопасности в Aurora PostgreSQL?
Изменение правил входящего трафика для указанной выше группы безопасности

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

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

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

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

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

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

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

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

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

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

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

Что дальше?

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

Navigation