ClickHouse admite el protocolo wire de PostgreSQL, lo que le permite usar clientes de Postgres para conectarse a ClickHouse. En cierto sentido, ClickHouse puede hacerse pasar por una instancia de PostgreSQL, lo que le permite conectar a ClickHouse una aplicación cliente de PostgreSQL que ClickHouse todavía no admite directamente (por ejemplo, Amazon Redshift).
Para habilitar el protocolo wire de PostgreSQL, agregue la configuración postgresql_port al archivo de configuración de su servidor. Por ejemplo, podría definir el puerto en un nuevo archivo XML dentro de la carpeta config.d:
<clickhouse>
<postgresql_port>9005</postgresql_port>
</clickhouse>Inicie su servidor ClickHouse y busque un mensaje del registro similar al siguiente que mencione Listening for PostgreSQL compatibility protocol:
{} <Information> Application: Listening for PostgreSQL compatibility protocol: 127.0.0.1:9005Conectar psql a ClickHouse
El siguiente comando muestra cómo conectar el cliente de PostgreSQL psql a ClickHouse:
psql -p [port] -h [hostname] -U [username] [database_name]Por ejemplo:
psql -p 9005 -h 127.0.0.1 -U alice defaultEl cliente psql solicita la contraseña:
Password for user alice:
psql (14.2, server 22.3.1.1)
WARNING: psql major version 14, server major version 22.
Some psql features might not work.
Type "help" for help.
default=>¡Y eso es todo! Ahora tiene un cliente de PostgreSQL conectado a ClickHouse, y todos los comandos y las consultas se ejecutan en ClickHouse.
Uso de SSL
Si tienes SSL/TLS configurado en tu instancia de ClickHouse, postgresql_port usará la misma configuración (el puerto se comparte entre clientes seguros y no seguros).
Cada cliente tiene su propia forma de conectarse mediante SSL. El siguiente comando muestra cómo proporcionar los certificados y la clave para conectar psql a ClickHouse de forma segura:
psql "port=9005 host=127.0.0.1 user=alice dbname=default sslcert=/path/to/certificate.pem sslkey=/path/to/key.pem sslrootcert=/path/to/rootcert.pem sslmode=verify-ca"Configuración de la autenticación de usuarios de ClickHouse con SCRAM-SHA-256
Para garantizar una autenticación de usuarios segura en ClickHouse, se recomienda usar el protocolo SCRAM-SHA-256. Configure el usuario especificando el elemento password_scram_sha256_hex en el archivo users.xml. El hash de la contraseña debe generarse con num_iterations=4096.
Asegúrese de que el cliente psql admita y negocie SCRAM-SHA-256 durante la conexión.
Configuración de ejemplo para el usuario user_with_sha256 con la contraseña abacaba:
<user_with_sha256>
<password_scram_sha256_hex>04e7a70338d7af7bb6142fe7e19fef46d9b605f3e78b932a60e8200ef9154976</password_scram_sha256_hex>
</user_with_sha256>Consulta la documentación de PostgreSQL para obtener más información sobre su configuración de SSL.