Интерфейс PostgreSQL
ClickHouse поддерживает проводной протокол PostgreSQL, что позволяет использовать клиенты Postgres для подключения к ClickHouse. В некотором смысле, ClickHouse может притворяться экземпляром PostgreSQL — позволяя подключать клиентское приложение PostgreSQL к ClickHouse, которое еще не поддерживается напрямую ClickHouse (например, Amazon Redshift).
Чтобы включить проводной протокол PostgreSQL, добавьте параметр postgresql_port в файл конфигурации вашего сервера. Например, вы можете определить порт в новом XML-файле в папке config.d
:
Запустите ваш сервер ClickHouse и ищите сообщение в журнале подобное следующему, которое упоминает Прослушивание протокола совместимости с PostgreSQL:
Подключение 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.