Skip to main content
ClickPipes для MySQL может обнаруживать изменения схемы в исходных таблицах и в некоторых случаях автоматически применять эти изменения к целевым таблицам. Ниже описано, как обрабатывается каждая DDL-операция:
Добавление столбцов при создании снимка в настоящее время не поддерживается. Рекомендуемый обходной путь — выполнять снимки до или после запланированных изменений схемы либо, если ClickPipe уже завершается с ошибкой, вручную добавить в целевую таблицу столбец подходящего типа.

Значения по умолчанию для добавленных столбцов

Для добавленного столбца ClickPipes передаёт значение по умолчанию только в том случае, если может безопасно преобразовать его в формат ClickHouse. Если значение по умолчанию передано, ClickHouse использует его при чтении частей данных, созданных до добавления нового столбца. В результате строки, уже имеющиеся в ClickHouse, получают исходное значение по умолчанию без полного обновления таблицы. ClickPipes передаёт целочисленные, десятичные и литералы с плавающей точкой; булевы значения; простые строковые значения и значения дат; а также значения enum или set, если сервер MySQL предоставляет полные метаданные строк binlog. Строковые литералы преобразуются с использованием совместимого с ClickHouse заключения в кавычки. ClickPipes намеренно не передаёт значения по умолчанию, которые не являются переносимыми литералами, включая NULL, битовые литералы, вызовы функций, такие как CURRENT_TIMESTAMP, NOW() или UUID(), а также строковые значения, содержащие обратную косую черту или управляющие символы. Столбец всё равно добавляется, но ClickHouse использует стандартное значение по умолчанию для его типа в частях, созданных до добавления столбца. Если эти существующие строки должны содержать исходное значение по умолчанию, необходимо полное обновление таблицы. ClickPipes передаёт значения по умолчанию только в рамках ALTER TABLE ADD COLUMN. Последующие операции, изменяющие или удаляющие значение по умолчанию для столбца, не передаются в ClickHouse.

Ограничения MySQL 5.x

Версии MySQL ниже 8.0.1 не включают полные метаданные столбцов в binlog (binlog_row_metadata=FULL), поэтому ClickPipes отслеживает столбцы по их порядковым позициям. Это означает следующее:
  • Добавление столбца в конец (ALTER TABLE ADD COLUMN ...) поддерживается.
  • Любая DDL-операция, меняющая позиции столбцов, приведёт к ошибке в пайпе, поскольку порядковые позиции больше нельзя надёжно сопоставить. Сюда относятся:
    • ALTER TABLE DROP COLUMN ...
    • ALTER TABLE ADD COLUMN ... AFTER ... / FIRST
    • ALTER TABLE MODIFY COLUMN ... AFTER ... / FIRST
    • ALTER TABLE CHANGE COLUMN ... AFTER ... / FIRST
Если вы столкнулись с этой ошибкой, потребуется повторно синхронизировать пайп.
Последнее изменение 14 августа 2026 г.