В этом документе объясняется, как работает параллельный снимок/начальная загрузка в ClickPipe для MySQL, а также описываются параметры снимка, с помощью которых можно управлять этим процессом.
Начальная загрузка — это первый этап CDC ClickPipe, на котором ClickPipe синхронизирует исторические данные таблиц из исходной базы данных с ClickHouse, а затем запускает CDC. Во многих случаях разработчики выполняют это в однопоточном режиме.
Однако ClickPipe для MySQL может распараллелить этот процесс, что позволяет значительно ускорить начальную загрузку.
Столбец ключа партиционирования
После включения feature flag вы увидите приведённую ниже настройку в средстве выбора таблицы ClickPipe (как при создании, так и при редактировании ClickPipe):
ClickPipe для MySQL использует столбец в исходной таблице, чтобы логически разбивать исходные таблицы на партиции. Этот столбец называется столбцом ключа партиционирования. Он используется для разделения исходной таблицы на партиции, которые затем ClickPipe может обрабатывать параллельно.
Чтобы получить заметный прирост производительности, на столбец ключа партиционирования в исходной таблице должен быть создан индекс. Это можно проверить, выполнив в MySQL команду SHOW INDEX FROM <table_name>.
Логическое партиционирование
Рассмотрим следующие настройки:
Количество строк на партицию в снимке
Этот параметр определяет, сколько строк входит в одну партицию. ClickPipe будет читать исходную таблицу фрагментами такого размера, а сами фрагменты будут обрабатываться параллельно в соответствии с заданным уровнем параллелизма начальной загрузки. Значение по умолчанию — 100 000 строк на партицию.
Параллелизм начальной загрузки
Этот параметр определяет, сколько партиций обрабатывается параллельно. Значение по умолчанию — 4, то есть ClickPipe будет параллельно считывать 4 партиции исходной таблицы. Это значение можно увеличить, чтобы ускорить начальную загрузку, но рекомендуется оставлять его в разумных пределах с учетом характеристик исходного инстанса, чтобы не перегрузить исходную базу данных. ClickPipe автоматически скорректирует количество партиций в зависимости от размера исходной таблицы и числа строк в каждой партиции.
Количество таблиц, обрабатываемых параллельно при создании снимка
Это не совсем связано с параллельным снимком, но этот параметр задаёт, сколько таблиц обрабатывается параллельно во время начальной загрузки. Значение по умолчанию — 1. Обратите внимание, что это работает поверх параллелизма партиций, поэтому, если у вас 4 партиции и 2 таблицы, ClickPipe будет читать 8 партиций параллельно.
Мониторинг параллельного снимка в MySQL
Вы можете выполнить SHOW processlist в MySQL, чтобы увидеть, как работает параллельный снимок. ClickPipe создаст несколько соединений с исходной базой данных, и каждое из них будет считывать отдельную партицию исходной таблицы. Если вы видите запросы SELECT с разными диапазонами, это означает, что ClickPipe считывает данные из исходных таблиц. Здесь также можно увидеть COUNT(*) и запрос партиционирования.
- Параметры снимка нельзя изменить после создания пайпа. Если нужно их поменять, потребуется создать новый ClickPipe.
- При добавлении таблиц в существующий ClickPipe параметры снимка изменить нельзя. Для новых таблиц ClickPipe будет использовать уже заданные параметры.
- Столбец ключа партиционирования не должен содержать
NULL, так как значения NULL пропускаются логикой партиционирования.
Последнее изменение 10 июня 2026 г.