Пример настроек:
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
))<source>
<mysql>
<port>3306</port>
<user>clickhouse</user>
<password>qwerty</password>
<replica>
<host>example01-1</host>
<priority>1</priority>
</replica>
<replica>
<host>example01-2</host>
<priority>1</priority>
</replica>
<db>db_name</db>
<table>table_name</table>
<where>id=10</where>
<invalidate_query>SQL_QUERY</invalidate_query>
<fail_on_connection_loss>true</fail_on_connection_loss>
<query>SELECT id, value_1, value_2 FROM db_name.table_name</query>
<enable_compression>1</enable_compression>
</mysql>
</source>Поля настроек:
| Параметр | Описание |
|---|---|
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'
))<source>
<mysql>
<host>localhost</host>
<socket>/path/to/socket/file.sock</socket>
<user>clickhouse</user>
<password>qwerty</password>
<db>db_name</db>
<table>table_name</table>
<where>id=10</where>
<invalidate_query>SQL_QUERY</invalidate_query>
<fail_on_connection_loss>true</fail_on_connection_loss>
<query>SELECT id, value_1, value_2 FROM db_name.table_name</query>
</mysql>
</source>