Перейти к основному содержанию
Перейти к основному содержанию

Ингестия данных из MySQL в ClickHouse (с использованием CDC)

Beta feature. Learn more.
Справочные материалы

Ингестия данных из 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
Icon-Architecture/32/Arch_Amazon-RDS_32Следуйте руководству по настройке Amazon RDS MySQL.
Amazon Aurora MySQL
Разовая загрузка, CDC
Icon-Architecture/32/Arch_Amazon-Aurora_32Следуйте руководству по настройке Amazon Aurora MySQL.
Cloud SQL for MySQL
Разовая загрузка, CDC
Следуйте руководству по настройке Cloud SQL for MySQL.
Azure Flexible Server for MySQL
Разовая загрузка
Icon-databases-122Следуйте руководству по настройке Azure Flexible Server for MySQL.
Самостоятельно развернутый MySQL
Разовая загрузка, CDC
Следуйте руководству по настройке Generic MySQL.
Amazon RDS MariaDB
Разовая загрузка, CDC
Icon-Architecture/32/Arch_Amazon-RDS_32Следуйте руководству по настройке Amazon RDS MariaDB.
Самостоятельно развернутая MariaDB
Разовая загрузка, CDC
MDB-VLogo_RGBСледуйте руководству по настройке Generic MariaDB.

После настройки исходной базы данных MySQL можно продолжить создание ClickPipe.

Создайте свой ClickPipe

Убедитесь, что вы вошли в свою учетную запись ClickHouse Cloud. Если у вас еще нет учетной записи, вы можете зарегистрироваться здесь.

  1. В консоли ClickHouse Cloud перейдите к своему сервису ClickHouse Cloud.
Сервис ClickPipes
  1. В левом меню выберите кнопку Data Sources и нажмите "Set up a ClickPipe".
Выбор импорта
  1. Выберите плитку MySQL CDC.
Выберите MySQL

Добавьте подключение к исходной базе данных MySQL

  1. Заполните параметры подключения к исходной базе данных MySQL, которую вы настроили на этапе предварительной подготовки.

    Справочные материалы

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

    Заполните параметры подключения

(Необязательно) Настройка SSH-туннелирования

Вы можете указать параметры SSH-туннелирования, если ваша исходная база данных MySQL недоступна из публичной сети.

  1. Включите переключатель "Use SSH Tunnelling".

  2. Заполните параметры SSH-подключения.

    SSH-туннелирование
  3. Чтобы использовать аутентификацию по ключу, нажмите "Revoke and generate key pair", чтобы сгенерировать новую пару ключей, и скопируйте сгенерированный открытый ключ на SSH-сервер в файл ~/.ssh/authorized_keys.

  4. Нажмите "Verify Connection", чтобы проверить подключение.

Примечание

Убедитесь, что вы добавили IP-адреса ClickPipes в список разрешённых в правилах брандмауэра для bastion-хоста SSH, чтобы ClickPipes смог установить SSH-туннель.

После того как параметры подключения будут заполнены, нажмите Next.

Настройка расширенных параметров

При необходимости вы можете настроить расширенные параметры. Краткое описание каждого параметра приведено ниже:

  • Sync interval: Интервал, с которым ClickPipes опрашивает исходную базу данных на предмет изменений. Это влияет на целевой сервис ClickHouse; для пользователей, чувствительных к стоимости, мы рекомендуем устанавливать более высокое значение (более 3600).
  • Parallel threads for initial load: Количество параллельных воркеров, которые будут использоваться для получения начального снимка. Полезно, если у вас много таблиц и вы хотите контролировать количество параллельных воркеров, используемых для получения начального снимка. Этот параметр задаётся для каждой таблицы.
  • Pull batch size: Количество строк, извлекаемых в одном батче. Это параметр в режиме «best effort», и он может не всегда строго соблюдаться.
  • Snapshot number of rows per partition: Количество строк, которые будут извлечены в каждом разделе (partition) во время начального снимка. Полезно, если у вас много строк в таблицах и вы хотите контролировать количество строк, извлекаемых в каждом разделе.
  • Snapshot number of tables in parallel: Количество таблиц, которые будут извлекаться параллельно во время начального снимка. Полезно, если у вас много таблиц и вы хотите контролировать количество таблиц, извлекаемых параллельно.

Настройка таблиц

  1. Здесь вы можете выбрать целевую базу данных для вашего ClickPipe. Вы можете выбрать существующую базу данных или создать новую.

    Выбор целевой базы данных
  2. Вы можете выбрать таблицы, которые нужно реплицировать из исходной базы данных MySQL. При выборе таблиц вы также можете переименовать таблицы в целевой базе данных ClickHouse, а также исключить отдельные столбцы.

Просмотрите права доступа и запустите ClickPipe

  1. Выберите роль "Full access" в выпадающем списке прав доступа и нажмите "Complete Setup".

    Просмотр прав доступа

Наконец, для получения дополнительной информации о распространённых проблемах и способах их решения обратитесь к разделу "ClickPipes for MySQL FAQ".

Что дальше?

После того как вы настроите ClickPipe для репликации данных из MySQL в ClickHouse Cloud, вы можете сосредоточиться на том, как выполнять запросы и моделировать данные для оптимальной производительности. Ответы на распространённые вопросы по CDC (фиксации изменений данных) в MySQL и устранению неполадок см. на странице часто задаваемых вопросов по MySQL.