- DDL
- Файл конфигурации
SOURCE(POSTGRESQL(
port 5432
host 'postgresql-hostname'
user 'postgres_user'
password 'postgres_password'
db 'db_name'
table 'table_name'
replica(host 'example01-1' port 5432 priority 1)
replica(host 'example01-2' port 5432 priority 2)
where 'id=10'
invalidate_query 'SQL_QUERY'
query 'SELECT id, value_1, value_2 FROM db_name.table_name'
))
<source>
<postgresql>
<host>postgresql-hostname</hoat>
<port>5432</port>
<user>clickhouse</user>
<password>qwerty</password>
<db>db_name</db>
<table>table_name</table>
<where>id=10</where>
<invalidate_query>SQL_QUERY</invalidate_query>
<query>SELECT id, value_1, value_2 FROM db_name.table_name</query>
</postgresql>
</source>
Поля настроек:
| Параметр | Описание |
|---|---|
host | Хост сервера PostgreSQL. Его можно указать для всех реплик или отдельно для каждой из них (внутри <replica>). |
port | Порт сервера PostgreSQL. Его можно указать для всех реплик или отдельно для каждой из них (внутри <replica>). |
user | Имя пользователя PostgreSQL. Его можно указать для всех реплик или отдельно для каждой из них (внутри <replica>). |
password | Пароль пользователя PostgreSQL. Его можно указать для всех реплик или отдельно для каждой из них (внутри <replica>). |
replica | Раздел с конфигурацией реплик. Таких разделов может быть несколько. |
replica/host | Хост PostgreSQL. |
replica/port | Порт PostgreSQL. |
replica/priority | Приоритет реплики. При попытке подключения ClickHouse перебирает реплики в порядке приоритета. Чем меньше число, тем выше приоритет. |
db | Имя базы данных. |
table | Имя таблицы. |
where | Критерий отбора. Синтаксис условий такой же, как в предложении WHERE в PostgreSQL. Например, id > 10 AND id < 20. Необязательно. |
invalidate_query | Запрос для проверки состояния словаря. Необязательно. Подробнее см. в разделе Обновление данных словаря с помощью LIFETIME. |
background_reconnect | Переподключаться к реплике в фоновом режиме, если соединение не удалось. Необязательно. |
query | Пользовательский запрос. Необязательно. |
Поля
table и where нельзя использовать вместе с полем query. При этом должно быть указано либо поле table, либо поле query.