Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Interface PostgreSQL

Non pris en charge par ClickHouse Cloud

ClickHouse prend en charge le protocole PostgreSQL wire, ce qui vous permet d’utiliser des clients Postgres pour vous connecter à ClickHouse. Dans un certain sens, ClickHouse peut se faire passer pour une instance PostgreSQL, ce qui vous permet de connecter à ClickHouse une application cliente PostgreSQL qui n’est pas déjà directement prise en charge par ClickHouse (par exemple, Amazon Redshift).

Pour activer le protocole PostgreSQL wire, ajoutez le paramètre postgresql_port au fichier de configuration de votre serveur. Par exemple, vous pouvez définir le port dans un nouveau fichier XML dans votre dossier config.d :

<clickhouse>
    <postgresql_port>9005</postgresql_port>
</clickhouse>

Démarrez votre serveur ClickHouse et recherchez dans les logs un message similaire au suivant mentionnant Listening for PostgreSQL compatibility protocol :

{} <Information> Application: Listening for PostgreSQL compatibility protocol: 127.0.0.1:9005

Connecter psql à ClickHouse

La commande suivante montre comment se connecter à ClickHouse avec le client PostgreSQL psql :

psql -p [port] -h [hostname] -U [username] [database_name]

Par exemple :

psql -p 9005 -h 127.0.0.1 -U alice default

Le client psql vous invite à saisir le mot de passe :

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=>

Et voilà ! Vous disposez désormais d'un client PostgreSQL connecté à ClickHouse, et toutes les commandes ainsi que les requêtes sont exécutées dans ClickHouse.

Utilisation de SSL

Si SSL/TLS est configuré sur votre instance ClickHouse, postgresql_port utilisera les mêmes paramètres (le port est partagé entre les clients sécurisés et non sécurisés).

Chaque client a sa propre méthode pour se connecter via SSL. La commande suivante montre comment fournir les certificats et la clé afin de connecter psql à ClickHouse de manière sécurisée :

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"

Configurer l'authentification des utilisateurs ClickHouse avec SCRAM-SHA-256

Pour garantir une authentification sécurisée des utilisateurs dans ClickHouse, il est recommandé d'utiliser le protocole SCRAM-SHA-256. Configurez l'utilisateur en spécifiant l'élément password_scram_sha256_hex dans le fichier users.xml. Le hachage du mot de passe doit être généré avec num_iterations=4096.

Assurez-vous que le client psql prend en charge SCRAM-SHA-256 et le négocie lors de la connexion.

Exemple de configuration pour l'utilisateur user_with_sha256 avec le mot de passe abacaba :

<user_with_sha256>
    <password_scram_sha256_hex>04e7a70338d7af7bb6142fe7e19fef46d9b605f3e78b932a60e8200ef9154976</password_scram_sha256_hex>
</user_with_sha256>

Consultez la documentation PostgreSQL pour plus de détails sur les paramètres SSL.

Navigation