Содержание
    13.12.2025

    ClickHouse поддерживает прямое подключение к серверам MySQL, что позволяет быстро и без лишних промежуточных шагов переносить данные из MySQL в ClickHouse.

    Настройка доступа

    Для начала необходимо разрешить пользователю ClickHouse подключаться к MySQL-серверам. Соответствующая привилегия настраивается на уровне пользователя и действует для всех баз данных в пределах MySQL-сервера. Для настройки привилегии в панели управления ClickHouse в разделе Пользователи установите флаг "MySQL" в настройках пользователя. В случае, если привилегия не настроена, то сервер вернет ошибку "Not enough privileges. To execute this query, it's necessary to have the grant READ ON MYSQL."

    Получение данных из MySQL

    Для чтения данных из таблицы MySQL используется табличная функция mysql. Пример запроса:

    SELECT *
    FROM mysql('host:port', 'database', 'table_name', 'login', 'password')
    

    Запрос возвращает данные из указанной таблицы MySQL и позволяет работать с ними так же, как с обычной таблицей ClickHouse.

    Загрузка данных в ClickHouse

    Полученные данные можно сразу сохранить в заранее созданную таблицу ClickHouse с помощью оператора INSERT … SELECT:

    INSERT INTO clickhouse_table (date, ip, log)
    SELECT date, ip, log
    FROM mysql('host:port', 'database', 'table_name', 'login', 'password')
    WHERE date > CURRENT_DATE() - INTERVAL 1 MONTH

    В данном примере в ClickHouse загружаются только данные за последний месяц, что удобно при инкрементальном переносе или первичной миграции больших объёмов данных.