Перейти к основному содержанию
Пример настроек:
SOURCE(MYSQL(
    port 3306
    user 'clickhouse'
    password 'qwerty'
    replica(host 'example01-1' priority 1)
    replica(host 'example01-2' priority 1)
    db 'db_name'
    table 'table_name'
    where 'id=10'
    invalidate_query 'SQL_QUERY'
    fail_on_connection_loss 'true'
    query 'SELECT id, value_1, value_2 FROM db_name.table_name'
    enable_compression 1
))

Поля настроек:
ПараметрОписание
portПорт сервера MySQL. Его можно указать для всех реплик или для каждой по отдельности (внутри <replica>).
userИмя пользователя MySQL. Его можно указать для всех реплик или для каждой по отдельности (внутри <replica>).
passwordПароль пользователя MySQL. Его можно указать для всех реплик или для каждой по отдельности (внутри <replica>).
replicaРаздел с конфигурациями реплик. Таких разделов может быть несколько.
replica/hostХост MySQL.
replica/priorityПриоритет реплики. При попытке подключения ClickHouse перебирает реплики в порядке приоритета. Чем меньше число, тем выше приоритет.
dbИмя базы данных.
tableИмя таблицы.
whereУсловие выборки. Синтаксис условий такой же, как в WHERE в MySQL, например id > 10 AND id < 20. Необязательно.
invalidate_queryЗапрос для проверки состояния словаря. Необязательно. Подробнее см. в разделе Обновление данных словаря с помощью LIFETIME.
fail_on_connection_lossУправляет поведением сервера при потере соединения. Если значение true, исключение генерируется немедленно, если соединение между клиентом и сервером было потеряно. Если значение false, сервер повторяет попытку получить данные не менее трёх раз, прежде чем сообщить об ошибке. Обратите внимание, что повторные попытки увеличивают время ответа. Значение по умолчанию: false.
queryПользовательский запрос. Необязательно.
enable_compressionВключает сжатие zlib для соединения по протоколу MySQL. Если установлено значение 1, ClickHouse запрашивает сжатие на уровне протокола у сервера MySQL. Также может быть задано отдельно для каждой реплики внутри <replica>. Значение по умолчанию: 0.
Поля table и where нельзя использовать вместе с полем query. При этом должно быть объявлено либо поле table, либо поле query.
Явного параметра secure нет. Если устанавливается SSL-соединение, защищённое подключение используется обязательно.
К MySQL на локальном хосте можно подключаться через сокеты. Для этого задайте host и socket. Пример настроек:
SOURCE(MYSQL(
    host 'localhost'
    socket '/path/to/socket/file.sock'
    user 'clickhouse'
    password 'qwerty'
    db 'db_name'
    table 'table_name'
    where 'id=10'
    invalidate_query 'SQL_QUERY'
    fail_on_connection_loss 'true'
    query 'SELECT id, value_1, value_2 FROM db_name.table_name'
))
Последнее изменение 25 июня 2026 г.