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

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

-
Выберите плитку
Postgres CDC
Добавление подключения к вашей исходной базе данных Postgres
-
Заполните детали подключения к вашей исходной базе данных Postgres, которые вы настроили на этапе предварительных условий.
к сведениюПрежде чем начать добавление деталей подключения, убедитесь, что вы внесли IP-адреса ClickPipes в белый список в правилах вашего брандмауэра. Список IP-адресов ClickPipes можно найти здесь. Для получения дополнительной информации обратитесь к руководствам по настройке исходного Postgres, связанным с верхней частью этой страницы.
(Необязательно) Настройка SSH-тоннелирования
Вы можете указать детали SSH-тоннелирования, если ваша исходная база данных Postgres не общедоступна.
-
Включите переключатель "Использовать SSH-тоннелирование".
-
Заполните детали SSH-подключения.
-
Чтобы использовать аутентификацию на основе ключа, нажмите "Отозвать и сгенерировать пару ключей", чтобы сгенерировать новую пару ключей и скопировать сгенерированный открытый ключ на ваш SSH-сервер в
~/.ssh/authorized_keys
. -
Нажмите "Проверить подключение", чтобы проверить подключение.
Убедитесь, что вы внесли IP-адреса ClickPipes в белый список в правилах вашего брандмауэра для SSH-бастионного хоста, чтобы ClickPipes мог установить SSH-тоннель.
После заполнения деталей подключения нажмите "Далее".
Настройка параметров репликации
-
Убедитесь, что вы выбрали слот репликации из выпадающего списка, который вы создали на этапе предварительных условий.
Расширенные настройки
При необходимости вы можете настроить расширенные параметры. Краткое описание каждого параметра приведено ниже:
- Интервал синхронизации: Это интервал, с которым ClickPipes будет опрашивать исходную базу данных на предмет изменений. Это влияет на целевой сервис ClickHouse, и для пользователей, заботящихся о стоимости, мы рекомендуем установить это значение выше (свыше
3600
). - Параллельные потоки для начальной загрузки: Это количество параллельных рабочих процессов, которые будут использоваться для получения начального снимка. Это полезно, когда у вас есть большое количество таблиц, и вы хотите контролировать количество параллельных рабочих процессов, используемых для получения начального снимка. Эта настройка применяется к каждой таблице.
- Размер пакета извлечения: Количество строк для извлечения за один пакет. Это определение является лучшим, но может не соблюдаться во всех случаях.
- Количество строк снимка на партицию: Это количество строк, которые будут извлечены в каждой партиции во время начального снимка. Это полезно, когда у вас есть большое количество строк в ваших таблицах, и вы хотите контролировать количество строк, извлекаемых в каждой партиции.
- Количество таблиц в параллельном режиме для снимка: Это количество таблиц, которые будут извлечены параллельно во время начального снимка. Это полезно, когда у вас есть много таблиц, и вы хотите контролировать количество таблиц, извлекаемых параллельно.
Настройка таблиц
-
Здесь вы можете выбрать целевую базу данных для вашего ClickPipe. Вы можете либо выбрать существующую базу данных, либо создать новую.
-
Вы можете выбрать таблицы, которые вы хотите реплицировать из исходной базы данных Postgres. При выборе таблиц вы также можете переименовать таблицы в целевой базе данных ClickHouse, а также исключить определенные столбцы.
осторожноЕсли вы определяете Ключ сортировки в ClickHouse иначе, чем Первичный ключ в Postgres, пожалуйста, не забудьте прочитать все соображения по этому поводу!
Проверьте права доступа и начните ClickPipe
-
Выберите роль "Полный доступ" из выпадающего списка разрешений и нажмите "Завершить настройку".
Что дальше?
После того как вы переместили данные из Postgres в ClickHouse, следующий очевидный вопрос заключается в том, как моделью ваши данные в ClickHouse, чтобы максимально их использовать. Пожалуйста, обратитесь к этой странице с Советами по моделированию данных ClickHouse для пользователей Postgres, чтобы помочь вам смоделировать данные в ClickHouse.
Кроме того, пожалуйста, посмотрите Часто задаваемые вопросы ClickPipes для Postgres для получения дополнительной информации о распространенных проблемах и способах их решения.
Это особенно важно, так как ClickHouse отличается от Postgres, и вы можете столкнуться с некоторыми неожиданностями. Этот гид помогает обратить внимание на возможные подводные камни и гарантирует, что вы сможете в полной мере воспользоваться возможностями ClickHouse.