- использование движка таблицы
PostgreSQLдля чтения данных из таблицы PostgreSQL - использование экспериментального движка базы данных
MaterializedPostgreSQLдля синхронизации базы данных PostgreSQL с базой данных в ClickHouse
Использование движка таблицы PostgreSQL
PostgreSQL позволяет выполнять из ClickHouse операции SELECT и INSERT с данными, хранящимися на удалённом сервере PostgreSQL.
В этой статье на примере одной таблицы показаны базовые способы интеграции.
1. Настройка PostgreSQL
- В
postgresql.confдобавьте следующую запись, чтобы PostgreSQL прослушивал сетевые интерфейсы:
- Создайте пользователя для подключения из ClickHouse. Для демонстрации в этом примере предоставляются полные права суперпользователя.
- Создайте новую базу данных в PostgreSQL:
- Создайте новую таблицу:
- Давайте добавим несколько строк для проверки:
- Чтобы настроить PostgreSQL так, чтобы новая база данных принимала подключения нового пользователя для репликации, добавьте следующую запись в файл
pg_hba.conf. В строке адреса укажите подсеть или IP-адрес вашего сервера PostgreSQL:
- Перезагрузите конфигурационный файл
pg_hba.conf(скорректируйте эту команду в зависимости от вашей версии):
- Убедитесь, что новый
clickhouse_userможет войти:
Если вы используете эту возможность в ClickHouse Cloud, вам может потребоваться разрешить IP-адресам ClickHouse Cloud доступ к вашему экземпляру PostgreSQL.
Сведения об исходящем трафике см. в ClickHouse Cloud Endpoints API.
2. Создайте таблицу в ClickHouse
- Войдите в
clickhouse-client:
- Создадим новую базу данных:
- Создайте таблицу, использующую движок
PostgreSQL:
| параметр | Описание | пример |
|---|---|---|
| host:port | имя хоста или IP-адрес и порт | postgres-host.domain.com:5432 |
| database | имя базы данных PostgreSQL | db_in_psg |
| user | имя пользователя для подключения к PostgreSQL | clickhouse_user |
| password | пароль для подключения к PostgreSQL | ClickHouse_123 |
Полный список параметров см. на странице документации движка таблицы PostgreSQL.
3 Проверьте интеграцию
- В ClickHouse просмотрите первые строки:
- Вернувшись в PostgreSQL, добавьте в таблицу пару строк:
- Эти две новые строки должны появиться в таблице ClickHouse:
- Посмотрим, что произойдет, если добавить строки в таблицу ClickHouse:
- Строки, добавленные в ClickHouse, должны появиться в таблице PostgreSQL:
PostrgeSQL.
Дополнительные возможности, такие как указание схем, выборка только части столбцов и подключение к нескольким репликам, описаны на странице документации о движке таблицы PostgreSQL. Также ознакомьтесь со статьёй в блоге ClickHouse and PostgreSQL - a match made in data heaven - part 1.
Использование движка базы данных MaterializedPostgreSQL
psql) и ClickHouse CLI (clickhouse-client). Сервер PostgreSQL установлен на Linux. Ниже приведены минимальные настройки, если PostgreSQL используется в новой тестовой установке
1. В PostgreSQL
- В
postgresql.confзадайте минимальные уровни прослушивания, уровень WAL для репликации и слоты репликации:
logical и как минимум 2 слота репликации
- Используя учетную запись администратора, создайте пользователя для подключения из ClickHouse:
- создайте новую базу данных:
- подключитесь к новой базе данных через
psql:
- Создайте новую таблицу:
- добавьте исходные строки:
- Настройте PostgreSQL так, чтобы разрешить новому пользователю подключаться к новой базе данных для репликации. Ниже приведена минимальная запись, которую нужно добавить в файл
pg_hba.conf:
- перезагрузите конфигурацию
pg_hba.conf, например так (при необходимости скорректируйте для своей версии):
- Проверьте вход под новым
clickhouse_user:
2. В ClickHouse
- войдите в ClickHouse CLI
- Включите экспериментальную возможность PostgreSQL для движка базы данных:
- Создайте новую базу данных для репликации и исходную таблицу:
| параметр | описание | пример |
|---|---|---|
| host:port | имя хоста или IP-адрес и порт | postgres-host.domain.com:5432 |
| database | имя базы данных PostgreSQL | db1 |
| user | имя пользователя для подключения к Postgres | clickhouse_user |
| password | пароль для подключения к Postgres | ClickHouse_123 |
| settings | дополнительные настройки движка | materialized_postgresql_tables_list = ‘table1’ |
Полное руководство по движку базы данных PostgreSQL см. здесь: https://clickhouse.com/docs/engines/database-engines/materialized-postgresql/#settings
- Убедитесь, что в исходной таблице есть данные:
3. Проверьте базовую репликацию
- В PostgreSQL добавьте новые строки:
- В ClickHouse убедитесь, что новые строки отображаются:
4. Сводка
Дополнительные возможности расширенной настройки описаны в справочной документации.