Приём данных из Postgres в ClickHouse (с использованием CDC)
Вы можете использовать ClickPipes для приёма данных из исходной базы данных Postgres в ClickHouse Cloud. Исходная база данных Postgres может быть развернута в локальной инфраструктуре (on-premises) или в облаке, включая Amazon RDS, Google Cloud SQL, Azure Database for Postgres, Supabase и другие.
Предварительные требования
Прежде чем начать, необходимо убедиться, что ваша база данных Postgres корректно настроена. В зависимости от используемого экземпляра Postgres вы можете следовать одному из следующих руководств:
-
Generic Postgres Source, если вы используете другого провайдера Postgres или самостоятельно развернутый экземпляр.
-
TimescaleDB, если вы используете расширение TimescaleDB в управляемом сервисе или на самостоятельно развернутом экземпляре.
Прокси-сервисы для Postgres, такие как PgBouncer, RDS Proxy, Supabase Pooler и т. п., не поддерживаются для репликации на основе CDC. Обязательно НЕ используйте их при настройке ClickPipes и вместо этого укажите параметры подключения к самой базе данных Postgres.
После того как исходная база данных Postgres настроена, вы можете продолжить создание ClickPipe.
Создание вашего ClickPipe
Убедитесь, что вы вошли в свою учетную запись ClickHouse Cloud. Если у вас еще нет учетной записи, вы можете зарегистрироваться здесь.
- В консоли ClickHouse Cloud перейдите к своему ClickHouse Cloud Service.

- В левой панели меню выберите кнопку
Data Sourcesи нажмите «Set up a ClickPipe».

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

(Необязательно) Настройка AWS Private Link
Вы можете использовать AWS Private Link для подключения к вашей исходной базе данных Postgres, если она размещена в AWS. Это полезно, если вы хотите, чтобы передача данных оставалась конфиденциальной. Вы можете следовать руководству по настройке подключения.
(Необязательно) Настройка SSH-туннелирования
Вы можете указать параметры SSH-туннелирования, если ваша исходная база данных Postgres недоступна из публичной сети.
-
Включите переключатель «Use SSH Tunnelling».
-
Заполните параметры SSH-подключения.

-
Чтобы использовать аутентификацию на основе ключей, нажмите «Revoke and generate key pair», чтобы сгенерировать новую пару ключей, и скопируйте сгенерированный открытый ключ на ваш SSH-сервер в
~/.ssh/authorized_keys. -
Нажмите «Verify Connection», чтобы проверить подключение.
Убедитесь, что вы внесли IP-адреса ClickPipes в список разрешенных адресов в правилах брандмауэра для SSH-бастион-хоста, чтобы ClickPipes смог установить SSH-туннель.
После заполнения параметров подключения нажмите «Next».
Настройка параметров репликации
-
Убедитесь, что вы выбрали слот репликации из раскрывающегося списка, который вы создали на этапе предварительной настройки.

Дополнительные настройки
При необходимости вы можете настроить дополнительные параметры. Краткое описание каждого параметра приведено ниже:
- 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: Количество таблиц, которые будут загружаться параллельно во время начального снимка. Это полезно, когда у вас много таблиц и вы хотите контролировать количество таблиц, загружаемых параллельно.
Настройка таблиц
-
Здесь вы можете выбрать целевую базу данных для вашего ClickPipe. Вы можете либо выбрать существующую базу данных, либо создать новую.

-
Вы можете выбрать таблицы, которые нужно реплицировать из исходной базы данных Postgres. При выборе таблиц вы также можете переименовать их в целевой базе данных ClickHouse, а также исключить определённые столбцы.
ПримечаниеЕсли вы задаёте ключ упорядочивания в ClickHouse, отличающийся от первичного ключа в Postgres, не забудьте ознакомиться со всеми рекомендациями, связанными с этим.
Проверьте права доступа и запустите ClickPipe
-
Выберите роль "Full access" в раскрывающемся списке прав доступа и нажмите "Complete Setup".

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