Cette page explique comment connecter le pilote psycopg3 PostgreSQL à une base de données avec dialecte PostgreSQL dans Spanner. psycopg3
est un pilote Python pour PostgreSQL.
Vérifiez que PGAdapter s'exécute sur la même machine que l'application qui se connecte à l'aide du pilote psycopg3 PostgreSQL.
export GOOGLE_APPLICATION_CREDENTIALS=/CREDENTIALS_FILE_PATH/credentials.json docker pull gcr.io/cloud-spanner-pg-adapter/pgadapter docker run \ -d -p 5432:5432 \ -v ${GOOGLE_APPLICATION_CREDENTIALS}:${GOOGLE_APPLICATION_CREDENTIALS}:ro \ -e GOOGLE_APPLICATION_CREDENTIALS \ gcr.io/cloud-spanner-pg-adapter/pgadapter \ -p PROJECT_NAME -i INSTANCE_NAME \ -x
Pour en savoir plus, consultez Démarrer PGAdapter.
Connectez-vous à PGAdapter à l'aide de TCP.
import psycopg with psycopg.connect("host=APPLICATION_HOST port=PORT dbname=DATABASE_NAME sslmode=disable") as conn: conn.autocommit = True with conn.cursor() as cur: cur.execute("select 'Hello world!' as hello") print("Greeting from Cloud Spanner PostgreSQL:", cur.fetchone()[0])
Remplacez les éléments suivants :
- APPLICATION_HOST : nom d'hôte ou adresse IP de la machine sur laquelle PGAdapter est exécuté. Si vous exécutez le code en local, utilisez
localhost
. - PORT : numéro de port sur lequel PGAdapter est exécuté. Modifiez-le dans la chaîne de connexion si PGAdapter s'exécute sur un port personnalisé. Sinon, utilisez le port par défaut,
5432
.
- APPLICATION_HOST : nom d'hôte ou adresse IP de la machine sur laquelle PGAdapter est exécuté. Si vous exécutez le code en local, utilisez
Sockets de domaine Unix
Cette section explique comment utiliser les sockets de domaine Unix pour se connecter à une base de données de dialecte PostgreSQL. Utilisez des sockets de domaine Unix pour obtenir la latence la plus faible possible.
Pour utiliser des sockets de domaine Unix, PGAdapter doit s'exécuter sur le même hôte que l'application cliente.
Vérifiez que le pilote JDBC PostgreSQL est chargé.
import psycopg
with psycopg.connect("host=/tmp
port=PORT
dbname=DATABASE_NAME") as conn:
conn.autocommit = True
with conn.cursor() as cur:
cur.execute("select 'Hello world!' as hello")
print("Greetings from Cloud Spanner PostgreSQL:", cur.fetchone()[0])
Remplacez les éléments suivants :
- /tmp : répertoire de socket de domaine par défaut pour PGAdapter. Vous pouvez le modifier à l'aide de l'argument de ligne de commande
-dir
. - PORT : numéro de port sur lequel PGAdapter est exécuté. Modifiez-le dans la chaîne de connexion si PGAdapter s'exécute sur un port personnalisé. Sinon, utilisez le port par défaut,
5432
.
Étapes suivantes
- En savoir plus sur PGAdapter.
- Pour en savoir plus sur les options de connexion du pilote psycopg3 PostgreSQL, consultez Options de connexion psycopg3 dans le dépôt GitHub PGAdapter.