- DDL
- Файл конфигурации
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'
))
<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>
</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, сервер ClickHouse повторяет попытку выполнить запрос три раза, прежде чем генерировать исключение. Обратите внимание, что повторные попытки увеличивают время отклика. Значение по умолчанию: false. |
query | Пользовательский запрос. Необязательно. |
Поля
table и where нельзя использовать вместе с полем query. При этом должно быть объявлено либо поле table, либо поле query.Явного параметра
secure нет. Если устанавливается SSL-соединение, защищённое подключение используется обязательно.host и socket.
Пример настроек:
- DDL
- Файл конфигурации
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>