Aller au contenu principal

Se connecter avec psql

psql est le client de ligne de commande natif de PostgreSQL. Il fournit une session interactive pour envoyer des commandes à Postgres et exécuter des requêtes ad hoc. Pour plus d'informations sur psql, consultez la référence psql dans la documentation PostgreSQL.

Prérequis

  • psql version 14 ou supérieure installée sur votre système
  • Un projet Lakebase avec un rôle Postgres configuré
remarque

Nous vous recommandons d'utiliser l'**authentification par mot de passe Postgres native** lors de la connexion psql avec. Les mots de passe Postgres natifs n'expirent pas toutes les heures comme les jetons OAuth, ce qui les rend mieux adaptés aux applications qui ne peuvent pas refresh fréquemment les informations d'identification. Consultez la vue d’ensemble de l’authentification pour plus de détails sur les méthodes d’authentification.

Pour la configuration réseau et la mise sur liste blanche d'adresses IP lors de l'utilisation d'un pare-feu côté client, voir Chaînes de connexion.

Installer psql

Si vous n'avez pas psql installé, suivez les étapes ci-dessous :

Bash
brew install libpq
echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Se connecter à votre base de données

Le moyen le plus simple de se connecter à l'aide de psql est d'utiliser une chaîne de connexion.

  1. Accédez à l'application Lakebase et sélectionnez votre projet.
  2. Cliquez sur Connecter pour ouvrir la fenêtre modale de connexion à la base de données
  3. Sélectionnez la Branch, le compute et la base de données auxquels vous souhaitez vous connecter.
  4. Sélectionnez un rôle Postgres dans le menu déroulant (nous vous recommandons d'utiliser un rôle Postgres natif avec authentification par mot de passe).
  5. Copiez la chaîne de connexion

Boîte de dialogue de connexion au rôle Postgres

Exécutez le client psql avec la chaîne de connexion :

Bash
psql 'postgresql://role_name:password@ep-abc-123.databricks.com/databricks_postgres?sslmode=require'

Remplacez les exemples de valeurs par vos détails de connexion réels.

remarque

Lakebase exige que toutes les connexions utilisent le chiffrement SSL/TLS. Le paramètre sslmode=require est inclus dans toutes les chaînes de connexion par default.

Exécuter les requêtes

Après avoir établi une connexion, vous pouvez exécuter des requêtes SQL directement :

SQL
CREATE TABLE my_table AS SELECT now();
SELECT * FROM my_table;

Méta-commandes

psql prend en charge les méta-commandes qui offrent des raccourcis pour interagir avec votre base de données. Ces commandes commencent par une barre oblique inverse (\) et peuvent considérablement accélérer votre workflow en vous donnant un accès rapide aux schémas de base de données et à d'autres information critiques sans avoir à écrire des query SQL complètes.

Avantages des meta-commandes

Les méta-commandes peuvent considérablement accélérer votre workflow en :

  • Fournir un accès rapide aux schémas et à la structure de la base de données
  • Affichage des objets de base de données sans écrire de query SQL complètes
  • Gestion des connexions et des sessions de base de données.
  • Obtenir de l'aide sur les commandes SQL

Commandes méta courantes

Voici quelques méta-commandes fréquemment utilisées :

  • \l — Lister toutes les bases de données
  • \c DATABASE_NAME — Connectez-vous à une autre base de données
  • \dt — Lister toutes les tables de la base de données actuelle
  • \d TABLE_NAME — Décrire la structure d'une table
  • \di — Lister les index
  • \dv — Vues de liste
  • \du Lister les rôles
  • \dn — Lister les schémas
  • \df — Lister les fonctions
  • \? — Affichez un aide-mémoire des méta-commandes disponibles
  • \h [NAME] — Obtenez de l'aide pour n'importe quelle commande Postgres (par exemple, \h SELECT)
  • \q — Quitter psql

Méta-commandes d'information

Pour obtenir des informations détaillées sur les objets de base de données (options : S = afficher les objets système, + = détails supplémentaires) :

Bash
Informational
(options: S = show system objects, + = additional detail)
\d[S+] list tables, views, and sequences
\d[S+] NAME describe table, view, sequence, or index
\da[S] [PATTERN] list aggregates
\dA[+] [PATTERN] list access methods
\dAc[+] [AMPTRN [TYPEPTRN]] list operator classes
\dAf[+] [AMPTRN [TYPEPTRN]] list operator families
\dAo[+] [AMPTRN [OPFPTRN]] list operators of operator families
\dAp[+] [AMPTRN [OPFPTRN]] list support functions of operator families
\db[+] [PATTERN] list tablespaces
\dc[S+] [PATTERN] list conversions
\dconfig[+] [PATTERN] list configuration parameters
\dC[+] [PATTERN] list casts
\dd[S] [PATTERN] show object descriptions not displayed elsewhere
\dD[S+] [PATTERN] list domains
\ddp [PATTERN] list default privileges
\dE[S+] [PATTERN] list foreign tables
\des[+] [PATTERN] list foreign servers
\det[+] [PATTERN] list foreign tables
\deu[+] [PATTERN] list user mappings
\dew[+] [PATTERN] list foreign-data wrappers
\df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]
list [only agg/normal/procedure/trigger/window] functions
\dF[+] [PATTERN] list text search configurations
\dFd[+] [PATTERN] list text search dictionaries
\dFp[+] [PATTERN] list text search parsers
\dFt[+] [PATTERN] list text search templates
\dg[S+] [PATTERN] list roles
\di[S+] [PATTERN] list indexes
\dl[+] list large objects, same as \lo_list
\dL[S+] [PATTERN] list procedural languages
\dm[S+] [PATTERN] list materialized views
\dn[S+] [PATTERN] list schemas
\do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]
list operators
\dO[S+] [PATTERN] list collations
\dp[S] [PATTERN] list table, view, and sequence access privileges
\dP[itn+] [PATTERN] list [only index/table] partitioned relations [n=nested]
\drds [ROLEPTRN [DBPTRN]] list per-database role settings
\drg[S] [PATTERN] list role grants
\dRp[+] [PATTERN] list replication publications
\dRs[+] [PATTERN] list replication subscriptions
\ds[S+] [PATTERN] list sequences
\dt[S+] [PATTERN] list tables
\dT[S+] [PATTERN] list data types
\du[S+] [PATTERN] list roles
\dv[S+] [PATTERN] list views
\dx[+] [PATTERN] list extensions
\dX [PATTERN] list extended statistics
\dy[+] [PATTERN] list event triggers
\l[+] [PATTERN] list databases
\lo_list[+] list large objects
\sf[+] FUNCNAME show a function's definition
\sv[+] VIEWNAME show a view's definition
\z[S] [PATTERN] same as \dp

Le modificateur + ajoute des détails supplémentaires, et le modificateur S inclut les objets système.

Pour obtenir la liste complète des méta-commandes, exécutez \? dans psql ou consultez les méta-commandes psql dans la documentation PostgreSQL.

Options de connexion

Vous pouvez également spécifier les détails de connexion à l'aide de paramètres individuels :

Bash
psql -h ep-abc-123.databricks.com -p 5432 -U role_name -d databricks_postgres

Ou définissez les variables d'environnement :

Bash
export PGHOST=ep-abc-123.databricks.com
export PGPORT=5432
export PGDATABASE=databricks_postgres
export PGUSER=role_name
export PGPASSWORD=your-password

psql
remarque

La valeur du mot de passe dépend de votre méthode d'authentification. Si vous vous authentifiez en tant qu'identité Databricks, utilisez un jeton OAuth à durée limitée comme mot de passe — le jeton expire une heure après sa génération, vous en générez donc un nouveau pour vous reconnecter. Si vous utilisez un rôle Postgres natif, utilisez le mot de passe de ce rôle. Consultez l'authentification par jeton OAuth pour plus de détails.

Pour plus d'informations sur les chaînes de connexion et les options d'authentification, consultez Se connecter à votre projet.