Вы можете использовать ClickPipes для ингестии данных из исходной базы данных Postgres в ClickHouse Cloud. Исходная база данных Postgres может размещаться в собственной инфраструктуре или в облаке, включая Amazon RDS, Google Cloud SQL, Azure Database for Postgres, Supabase и другие сервисы.
ClickPipes для Postgres можно развертывать и настраивать вручную через интерфейс ClickPipes, а также программно с помощью OpenAPI и Terraform.
Предварительные требования
Для начала убедитесь, что ваша база данных Postgres настроена правильно. В зависимости от используемого исходного экземпляра Postgres вы можете воспользоваться одним из следующих руководств:
-
Generic Postgres Source, если вы используете любого другого провайдера Postgres или самоуправляемый экземпляр.
-
TimescaleDB, если вы используете расширение TimescaleDB в управляемом сервисе или самоуправляемом экземпляре.
После настройки исходной базы данных Postgres вы можете перейти к созданию ClickPipe.
Создание ClickPipe
Убедитесь, что вы вошли в свою учётную запись ClickHouse Cloud. Если у вас ещё нет учётной записи, вы можете зарегистрироваться здесь.
- В консоли ClickHouse Cloud перейдите в свой сервис ClickHouse Cloud.

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

-
Выберите плитку
Postgres CDC
Добавление подключения к исходной базе данных Postgres
- Заполните сведения о подключении к исходной базе данных Postgres, которую вы настроили на этапе предварительной подготовки.

(Необязательно) Настройка AWS Private Link
Вы можете использовать AWS Private Link для подключения к исходной базе данных Postgres, если она размещена в AWS. Это полезно, если вы хотите, чтобы передача данных оставалась закрытой. Вы можете воспользоваться руководством по настройке подключения.
(Необязательно) Изменение настроек TLS
По умолчанию ваш ClickPipe создаётся с включённым TLS и проверкой сертификата. Эти параметры можно изменить при создании ClickPipe:

Или отредактировать в разделе Connection settings на вкладке Settings приостановленного ClickPipe:


Где:
Disable TLSвключает или отключает TLS для соединения. Если TLS отключён, данные передаются по сети в открытом виде, включая потенциально учётные данные и другую конфиденциальную информацию.Skip certificate verificationвключает или отключает проверку сертификата, предоставленного исходной базой данных. Учитывайте риски для безопасности при отключении проверки сертификата.TLS Host(необязательно; по умолчанию используется исходный Host) — это hostname, с которым должен совпадать CN сертификата, если включена проверка сертификата.Upload CAиспользуется для загрузки CA, который применяется при включённой проверке сертификата.
(Необязательно) Настройка SSH-туннелирования
Вы можете указать параметры SSH-туннеля, если ваша исходная база данных Postgres недоступна из интернета.
-
Включите переключатель "Use SSH Tunnelling".
-
Заполните сведения об SSH-подключении.

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

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

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

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