Ингестия данных из MongoDB в ClickHouse (с использованием CDC)
Ингестия данных из MongoDB в ClickHouse Cloud через ClickPipes находится в стадии публичного бета-тестирования.
В консоли и документации ClickHouse Cloud термины «table» и «collection» используются как взаимозаменяемые для MongoDB.
Вы можете использовать ClickPipes для ингестии данных из базы данных MongoDB в ClickHouse Cloud. Исходная база данных MongoDB может размещаться в локальной инфраструктуре (on-premises) или в облаке с использованием таких сервисов, как MongoDB Atlas.
ClickPipes для MongoDB можно развёртывать и администрировать вручную с помощью интерфейса ClickPipes, а также программно с использованием OpenAPI и Terraform.
Предварительные требования
Для начала необходимо убедиться, что ваша база данных MongoDB корректно настроена для репликации. Шаги настройки зависят от того, как вы разворачиваете MongoDB, поэтому следуйте соответствующему руководству ниже:
После того как исходная база данных MongoDB будет настроена, вы можете приступить к созданию ClickPipe.
Создайте ClickPipe
Убедитесь, что вы вошли в свою учетную запись ClickHouse Cloud. Если у вас еще нет учетной записи, вы можете зарегистрироваться здесь.
- В консоли ClickHouse Cloud перейдите к своему сервису ClickHouse Cloud Service.

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

- Выберите плитку
MongoDB CDC.

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

(Необязательно) Настройка SSH-туннелирования
Вы можете указать параметры SSH-туннелирования, если ваша исходная база данных MongoDB недоступна из публичного интернета.
-
Включите переключатель "Use SSH Tunnelling".
-
Заполните параметры SSH-подключения.

-
Чтобы использовать аутентификацию по ключу, нажмите "Revoke and generate key pair", чтобы сгенерировать новую пару ключей, и скопируйте сгенерированный открытый ключ на ваш SSH-сервер в
~/.ssh/authorized_keys. -
Нажмите "Verify Connection", чтобы проверить подключение.
Убедитесь, что вы добавили IP-адреса ClickPipes в список разрешённых в правилах межсетевого экрана (firewall) для SSH bastion-хоста, чтобы ClickPipes мог установить SSH-туннель.
После заполнения параметров подключения нажмите Next.
Настройка расширенных параметров
При необходимости вы можете настроить расширенные параметры. Краткое описание каждого параметра приведено ниже:
- Sync interval: Интервал, с которым ClickPipes будет опрашивать исходную базу данных на наличие изменений. Это влияет на целевой сервис ClickHouse; для пользователей, чувствительных к затратам, мы рекомендуем устанавливать более высокое значение (выше
3600). - Pull batch size: Количество строк, извлекаемых за один пакет. Это параметр по принципу «best effort», и он может соблюдаться не во всех случаях.
- Snapshot number of tables in parallel: Количество таблиц, которые будут считываться параллельно во время начального snapshot. Это полезно, когда у вас большое количество таблиц и вы хотите контролировать число таблиц, извлекаемых параллельно.
Настройте таблицы
-
Здесь вы можете выбрать целевую базу данных для своего ClickPipe. Можно либо выбрать существующую базу данных, либо создать новую.

-
Вы можете выбрать таблицы, которые хотите реплицировать из исходной базы данных MongoDB. При выборе таблиц вы также можете переименовать их в целевой базе данных ClickHouse.
Проверьте разрешения и запустите ClickPipe
-
Выберите роль «Full access» в выпадающем списке разрешений и нажмите «Complete setup».

Что дальше?
После того как вы настроили ClickPipe для репликации данных из MongoDB в ClickHouse Cloud, вы можете сосредоточиться на том, как лучше выполнять запросы к данным и моделировать их для обеспечения оптимальной производительности.
Особенности и ограничения
Ниже перечислены несколько важных особенностей и ограничений при использовании этого коннектора:
- Требуется MongoDB версии 5.1.0+.
- Для CDC (фиксация изменений данных) мы используем нативный API Change Streams MongoDB, который полагается на MongoDB oplog для фиксации изменений в режиме реального времени.
- Документы из MongoDB по умолчанию реплицируются в ClickHouse как данные типа JSON. Это обеспечивает гибкое управление схемой и позволяет использовать широкий набор JSON-операторов в ClickHouse для запросов и аналитики. Подробнее о выполнении запросов к данным JSON можно узнать здесь.
- Самостоятельная настройка PrivateLink в настоящее время недоступна. Если вы используете AWS и вам требуется PrivateLink, свяжитесь с [email protected] или создайте тикет в службу поддержки — мы поможем вам включить эту возможность.