Погружение данных из Postgres в ClickHouse (с использованием CDC)
В настоящее время погружение данных из Postgres в ClickHouse Cloud через ClickPipes находится на публичной бета-версии.
Вы можете использовать ClickPipes для погружения данных из вашей исходной базы данных Postgres в ClickHouse Cloud. Исходная база данных Postgres может быть размещена на локальном сервере или в облаке, включая Amazon RDS, Google Cloud SQL, Azure Database for Postgres, Supabase и другие.
Предварительные требования
Чтобы начать, сначала убедитесь, что ваша база данных Postgres настроена правильно. В зависимости от вашей исходной инстанции Postgres, вы можете следовать любому из следующих руководств:
-
Общий источник Postgres, если вы используете какого-либо другого поставщика 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 назначения, а также исключить конкретные колонки.
осторожноЕсли вы определяете Ordering Key в ClickHouse иначе, чем Primary Key в Postgres, пожалуйста, не забудьте прочитать все нюансы вокруг этого!
Проверьте права и начните ClickPipe
-
Выберите роль "Полный доступ" из выпадающего списка прав и нажмите "Завершить настройку".
Что дальше?
Как только вы переместили данные из Postgres в ClickHouse, следующий очевидный вопрос — как смоделировать ваши данные в ClickHouse, чтобы максимально их использовать. Пожалуйста, изучите эту страницу с Советами по моделированию данных ClickHouse для пользователей Postgres, чтобы помочь вам смоделировать данные в ClickHouse.
Кроме того, пожалуйста, ознакомьтесь с FAQ по ClickPipes для Postgres для получения дополнительной информации о распространенных проблемах и о том, как их решить.
Это особенно важно, так как ClickHouse отличается от Postgres, и вы можете столкнуться с некоторыми сюрпризами. Это руководство помогает решить потенциальные трудности и гарантирует, что вы сможете в полной мере использовать ClickHouse.