Прием данных из 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.

- Выберите кнопку
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.