Ингестия данных из MySQL в ClickHouse (с использованием CDC)
Ингестия данных из MySQL в ClickHouse Cloud с помощью ClickPipes находится в стадии публичной беты.
MySQL ClickPipe предоставляет полностью управляемый и отказоустойчивый способ приёма данных из баз данных MySQL и MariaDB в ClickHouse Cloud. Он поддерживает как массовые загрузки (bulk loads) для одноразовой ингестии, так и Change Data Capture (CDC) для непрерывной ингестии.
MySQL ClickPipes могут развертываться и управляться вручную через интерфейс ClickPipes UI. В будущем можно будет развертывать и управлять MySQL ClickPipes программно с использованием OpenAPI и Terraform.
Предварительные требования
Для начала необходимо убедиться, что ваша база данных MySQL корректно настроена для репликации binlog. Шаги настройки зависят от того, как вы разворачиваете MySQL, поэтому следуйте соответствующему руководству ниже:
Поддерживаемые источники данных
| Название | Логотип | Подробности |
|---|---|---|
| Amazon RDS MySQL Разовая загрузка, CDC | Следуйте инструкциям в руководстве по настройке Amazon RDS MySQL. | |
| Amazon Aurora MySQL Разовая загрузка, CDC | Следуйте инструкциям в руководстве по настройке Amazon Aurora MySQL. | |
| Cloud SQL for MySQL Разовая загрузка, CDC | Следуйте инструкциям в руководстве по настройке Cloud SQL for MySQL. | |
| Azure Flexible Server for MySQL Разовая загрузка | Следуйте инструкциям в руководстве по настройке Azure Flexible Server for MySQL. | |
| Self-hosted MySQL Разовая загрузка, CDC | Следуйте инструкциям в руководстве по настройке Generic MySQL. | |
| Amazon RDS MariaDB Разовая загрузка, CDC | Следуйте инструкциям в руководстве по настройке Amazon RDS MariaDB. | |
| Self-hosted MariaDB Разовая загрузка, CDC | Следуйте инструкциям в руководстве по настройке Generic MariaDB. |
После настройки исходной базы данных MySQL вы можете продолжить создание ClickPipe.
Создайте ClickPipe
Убедитесь, что вы вошли в свою учетную запись ClickHouse Cloud. Если у вас еще нет учетной записи, вы можете зарегистрироваться здесь.
- В консоли ClickHouse Cloud перейдите к своему сервису ClickHouse Cloud.

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

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

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

(Необязательно) Настройка SSH-туннелирования
Вы можете указать параметры SSH-туннелирования, если ваша исходная база данных MySQL недоступна из публичной сети.
-
Включите переключатель «Использовать SSH-туннелирование».
-
Заполните параметры SSH-подключения.

-
Чтобы использовать аутентификацию по ключу, нажмите «Отозвать и сгенерировать пару ключей», чтобы сгенерировать новую пару ключей, и скопируйте сгенерированный открытый ключ на ваш SSH-сервер в файл
~/.ssh/authorized_keys. -
Нажмите «Проверить подключение», чтобы проверить соединение.
Убедитесь, что вы добавили IP-адреса ClickPipes в список разрешённых в правилах брандмауэра для SSH bastion-хоста, чтобы ClickPipes мог установить SSH-туннель.
После заполнения параметров подключения нажмите 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. Вы можете либо выбрать существующую базу данных, либо создать новую.

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

Дополнительные сведения о распространённых проблемах и способах их решения см. на странице "ClickPipes for MySQL FAQ".
Что дальше?
После того как вы настроили ClickPipe для репликации данных из MySQL в ClickHouse Cloud, вы можете сосредоточиться на том, как выполнять запросы и моделировать данные для достижения оптимальной производительности. Ответы на распространённые вопросы по MySQL CDC и устранению неполадок см. на странице MySQL FAQs.