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

ClickPipes для MySQL: ответы на часто задаваемые вопросы (FAQ)

Поддерживает ли MySQL ClickPipe MariaDB?

Да, MySQL ClickPipe поддерживает MariaDB версии 10.0 и выше. Конфигурация для неё очень похожа на MySQL, по умолчанию используется репликация на основе GTID.

Поддерживает ли MySQL ClickPipe PlanetScale, Vitess или TiDB?

Нет, они не поддерживают binlog API MySQL.

Как управляется репликация?

Мы поддерживаем как репликацию GTID, так и FilePos. В отличие от Postgres, здесь нет слота для управления смещением. Вместо этого вам необходимо настроить на сервере MySQL достаточный срок хранения binlog. Если наше смещение в binlog становится недействительным (например, зеркало было приостановлено слишком надолго или происходит переключение базы данных (failover) при использовании репликации FilePos), вам потребуется заново синхронизировать pipe. Обязательно оптимизируйте материализованные представления в зависимости от целевых таблиц, так как неэффективные запросы могут замедлить ингестию и привести к тому, что она отстанет от периода хранения логов.

Также возможно, что неактивная база данных будет переключать файл журнала, не давая ClickPipes продвинуться к более актуальному смещению. Возможно, вам потребуется настроить таблицу heartbeat с регулярными обновлениями по расписанию.

В начале начальной загрузки мы фиксируем binlog‑смещение, с которого нужно стартовать. Это смещение должно оставаться действительным к моменту завершения начальной загрузки, чтобы CDC (фиксация изменений данных) могла продолжаться. Если вы осуществляете приём большого объёма данных, обязательно настройте соответствующий срок хранения binlog. При настройке таблиц вы можете ускорить начальную загрузку, включив параметр Use a custom partitioning key for initial load для больших таблиц в расширенных настройках, чтобы мы могли загружать одну таблицу параллельно.

Почему при подключении к MySQL я получаю ошибку проверки TLS-сертификата?

При подключении к MySQL вы можете столкнуться с ошибками сертификатов, такими как x509: certificate is not valid for any names или x509: certificate signed by unknown authority. Они возникают из-за того, что ClickPipes по умолчанию включает шифрование TLS.

У вас есть несколько вариантов решения этих проблем:

  1. Установить поле TLS Host — когда имя хоста в вашем подключении отличается от имени в сертификате (типично для AWS PrivateLink через Endpoint Service). Установите значение "TLS Host (optional)" так, чтобы оно совпадало с Common Name (CN) или Subject Alternative Name (SAN) сертификата.

  2. Загрузить ваш Root CA — для серверов MySQL, использующих внутренние центры сертификации (Certificate Authority), или Google Cloud SQL в стандартной конфигурации per-instance CA. Дополнительную информацию о том, как получить сертификаты Google Cloud SQL, см. в этом разделе.

  3. Настроить сертификат сервера — обновите SSL‑сертификат сервера так, чтобы он включал все имена хостов, по которым выполняются подключения, и использовал доверенный центр сертификации.

  4. Пропустить проверку сертификата — для самоуправляемых (self-hosted) MySQL или MariaDB, где стандартная конфигурация выдаёт самоподписанный сертификат, который мы не можем проверить (MySQL, MariaDB). Использование такого сертификата шифрует данные при передаче, но создаёт риск подмены сервера. Мы рекомендуем использовать корректно подписанные сертификаты в продуктивных средах, однако эта опция полезна для разовых тестов или подключения к легаси‑инфраструктуре.

Поддерживаете ли вы изменения схемы?

Дополнительную информацию см. на странице ClickPipes for MySQL: Schema Changes Propagation Support.

Поддерживаете ли вы репликацию каскадных удалений внешних ключей MySQL ON DELETE CASCADE?

Из-за того, как MySQL обрабатывает каскадные удаления, они не записываются в binlog. Поэтому ClickPipes (как и любой инструмент CDC) не может их реплицировать. Это может приводить к неконсистентным данным. Рекомендуется использовать триггеры вместо каскадных удалений.

Почему я не могу реплицировать таблицу, в имени которой есть точка?

В настоящее время в PeerDB есть ограничение: точки в идентификаторах исходных таблиц — то есть либо в имени схемы, либо в имени таблицы — не поддерживаются для репликации, так как PeerDB в таком случае не может определить, где схема, а где таблица, поскольку выполняет разделение по точке.
Ведётся работа над поддержкой раздельного ввода схемы и таблицы, чтобы обойти это ограничение.