Интерфейс PostgreSQL
ClickHouse поддерживает протокол передачи данных PostgreSQL, который позволяет вам использовать клиенты Postgres для подключения к ClickHouse. В некотором смысле ClickHouse может притворяться экземпляром PostgreSQL - это позволяет подключать клиентское приложение PostgreSQL к ClickHouse, которое не поддерживается напрямую ClickHouse (например, Amazon Redshift).
Для включения протокола передачи данных PostgreSQL добавьте настройку postgresql_port в файл конфигурации вашего сервера. Например, вы можете определить порт в новом XML-файле в вашей папке config.d
:
Запустите сервер ClickHouse и ищите сообщение в журнале, подобное следующему, которое упоминает Listening for PostgreSQL compatibility protocol:
Подключение psql к ClickHouse
Следующая команда демонстрирует, как подключить клиент PostgreSQL psql
к ClickHouse:
Например:
Клиент psql
требует входа с паролем, поэтому вы не сможете подключиться, используя пользователя default
без пароля. Либо назначьте пароль пользователю default
, либо войдите как другой пользователь.
Клиент psql
запрашивает пароль:
И вот всё! Теперь у вас есть клиент PostgreSQL, подключенный к ClickHouse, и все команды и запросы выполняются на ClickHouse.
Протокол PostgreSQL в настоящее время поддерживает только пароли в открытом виде.
Использование SSL
Если у вас настроены SSL/TLS на вашем экземпляре ClickHouse, то postgresql_port
будет использовать те же настройки (порт общий как для защищенных, так и для незащищенных клиентов).
Каждый клиент имеет свой метод подключения с использованием SSL. Следующая команда демонстрирует, как передать сертификаты и ключ для безопасного подключения psql
к ClickHouse:
Настройка аутентификации пользователей ClickHouse с SCRAM-SHA-256
Для обеспечения безопасной аутентификации пользователей в ClickHouse рекомендуется использовать протокол SCRAM-SHA-256. Настройте пользователя, указав элемент password_scram_sha256_hex
в файле users.xml. Хеш пароля должен быть сгенерирован с num_iterations=4096.
Убедитесь, что клиент psql поддерживает и согласовывает SCRAM-SHA-256 во время соединения.
Пример конфигурации для пользователя user_with_sha256
с паролем abacaba
:
Просмотрите документацию PostgreSQL для получения дополнительной информации о их настройках SSL.