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

Приём данных из Postgres в ClickHouse (с использованием CDC)

Вы можете использовать ClickPipes для приёма данных из исходной базы данных Postgres в ClickHouse Cloud. Исходная база данных Postgres может быть развернута в локальной инфраструктуре (on-premises) или в облаке, включая Amazon RDS, Google Cloud SQL, Azure Database for Postgres, Supabase и другие.

Предварительные требования

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

  1. Amazon RDS Postgres

  2. Amazon Aurora Postgres

  3. Supabase Postgres

  4. Google Cloud SQL Postgres

  5. Azure Flexible Server for Postgres

  6. Neon Postgres

  7. Crunchy Bridge Postgres

  8. Generic Postgres Source, если вы используете другого провайдера Postgres или самостоятельно развернутый экземпляр.

  9. TimescaleDB, если вы используете расширение TimescaleDB в управляемом сервисе или на самостоятельно развернутом экземпляре.

Примечание

Прокси-сервисы для Postgres, такие как PgBouncer, RDS Proxy, Supabase Pooler и т. п., не поддерживаются для репликации на основе CDC. Обязательно НЕ используйте их при настройке ClickPipes и вместо этого укажите параметры подключения к самой базе данных Postgres.

После того как исходная база данных Postgres настроена, вы можете продолжить создание ClickPipe.

Создание вашего ClickPipe

Убедитесь, что вы вошли в свою учетную запись ClickHouse Cloud. Если у вас еще нет учетной записи, вы можете зарегистрироваться здесь.

  1. В консоли ClickHouse Cloud перейдите к своему ClickHouse Cloud Service.
Сервис ClickPipes
  1. В левой панели меню выберите кнопку Data Sources и нажмите «Set up a ClickPipe».
Выбор импорта
  1. Выберите плитку Postgres CDC.

    Выбор Postgres

Добавление подключения к исходной базе данных Postgres

  1. Заполните параметры подключения к вашей исходной базе данных Postgres, которую вы настроили на этапе предварительной настройки.

    Справочные материалы

    Прежде чем добавлять параметры подключения, убедитесь, что вы добавили IP-адреса ClickPipes в список разрешенных адресов в правилах брандмауэра. Список IP-адресов ClickPipes можно найти здесь. За дополнительной информацией обратитесь к руководствам по настройке исходного Postgres, приведенным в начале этой страницы.

    Заполнение параметров подключения

Вы можете использовать AWS Private Link для подключения к вашей исходной базе данных Postgres, если она размещена в AWS. Это полезно, если вы хотите, чтобы передача данных оставалась конфиденциальной. Вы можете следовать руководству по настройке подключения.

(Необязательно) Настройка SSH-туннелирования

Вы можете указать параметры SSH-туннелирования, если ваша исходная база данных Postgres недоступна из публичной сети.

  1. Включите переключатель «Use SSH Tunnelling».

  2. Заполните параметры SSH-подключения.

    SSH-туннелирование
  3. Чтобы использовать аутентификацию на основе ключей, нажмите «Revoke and generate key pair», чтобы сгенерировать новую пару ключей, и скопируйте сгенерированный открытый ключ на ваш SSH-сервер в ~/.ssh/authorized_keys.

  4. Нажмите «Verify Connection», чтобы проверить подключение.

Примечание

Убедитесь, что вы внесли IP-адреса ClickPipes в список разрешенных адресов в правилах брандмауэра для SSH-бастион-хоста, чтобы ClickPipes смог установить SSH-туннель.

После заполнения параметров подключения нажмите «Next».

Настройка параметров репликации

  1. Убедитесь, что вы выбрали слот репликации из раскрывающегося списка, который вы создали на этапе предварительной настройки.

    Выбор слота репликации

Дополнительные настройки

При необходимости вы можете настроить дополнительные параметры. Краткое описание каждого параметра приведено ниже:

  • Sync interval: Интервал, с которым ClickPipes будет опрашивать исходную базу данных на наличие изменений. Это влияет на целевой сервис ClickHouse; для пользователей, чувствительных к стоимости, мы рекомендуем устанавливать более высокое значение (более 3600).
  • Parallel threads for initial load: Количество параллельных рабочих потоков, которые будут использоваться для получения начального снимка. Это полезно, когда у вас много таблиц и вы хотите контролировать количество параллельных рабочих процессов, используемых для получения начального снимка. Этот параметр задается для каждой таблицы.
  • Pull batch size: Количество строк, извлекаемых за один пакет. Это желаемое значение, которое может не соблюдаться во всех случаях.
  • Snapshot number of rows per partition: Количество строк, которые будут извлекаться в каждом разделе во время начального снимка. Это полезно, когда у вас много строк в таблицах и вы хотите контролировать количество строк, извлекаемых в каждом разделе.
  • Snapshot number of tables in parallel: Количество таблиц, которые будут загружаться параллельно во время начального снимка. Это полезно, когда у вас много таблиц и вы хотите контролировать количество таблиц, загружаемых параллельно.

Настройка таблиц

  1. Здесь вы можете выбрать целевую базу данных для вашего ClickPipe. Вы можете либо выбрать существующую базу данных, либо создать новую.

    Выбор целевой базы данных
  2. Вы можете выбрать таблицы, которые нужно реплицировать из исходной базы данных Postgres. При выборе таблиц вы также можете переименовать их в целевой базе данных ClickHouse, а также исключить определённые столбцы.

    Примечание

    Если вы задаёте ключ упорядочивания в ClickHouse, отличающийся от первичного ключа в Postgres, не забудьте ознакомиться со всеми рекомендациями, связанными с этим.

Проверьте права доступа и запустите ClickPipe

  1. Выберите роль "Full access" в раскрывающемся списке прав доступа и нажмите "Complete Setup".

    Просмотр прав доступа

Что дальше?

После того как вы настроите ClickPipe для репликации данных из PostgreSQL в ClickHouse Cloud, вы можете сосредоточиться на том, как выполнять запросы к данным и моделировать их для оптимальной производительности. Ознакомьтесь с руководством по миграции, чтобы оценить, какая стратегия лучше всего соответствует вашим требованиям, а также со страницами Стратегии дедупликации (с использованием CDC) и Ключи упорядочивания, где описаны передовые практики для сценариев с нагрузками CDC.

Для ответов на часто задаваемые вопросы по PostgreSQL CDC и устранения неполадок см. страницу часто задаваемых вопросов по Postgres.