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

Источник словаря MySQL

Пример настроек:

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'
))

Поля настроек:

SettingDescription
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, сервер ClickHouse пытается выполнить запрос три раза, прежде чем выбросить исключение. Обратите внимание, что повторные попытки приводят к увеличению времени ответа. Значение по умолчанию: false.
queryПользовательский запрос. Необязательный параметр.
Примечание

Поля 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'
))