Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Источник словаря 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'
    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.
ssl_ca_pem Содержимое CA‑сертификата, по которому проверяется сертификат сервера MySQL. Необязательно.
ssl_cert_pem Содержимое клиентского сертификата для аутентификации на основе сертификата. Необязательно.
ssl_key_pem Содержимое закрытого ключа, принадлежащего ssl_cert_pem. Необязательно.
ssl_ca, ssl_cert, ssl_key Те же учётные данные в виде путей к файлам на сервере. Разрешено только для словаря, определённого в файле конфигурации сервера или через определённую там именованную коллекцию; см. ниже. Необязательно.

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