Cette page explique comment connecter le pilote PostgreSQL psycopg3 à
une base de données de 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 PostgreSQL psycopg3.
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 \ -xPour en savoir plus, consultez la section 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 s'exécute. Si vous exécutez en local, utilisez
localhost. - PORT : numéro de port sur lequel PGAdapter s'exécute. 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 s'exécute. Si vous exécutez en local, utilisez
Sockets de domaine Unix
Cette section explique comment utiliser des sockets de domaine Unix pour vous 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 s'exécute. 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.
Étape suivante
- En savoir plus sur PGAdapter.
- Pour en savoir plus sur les options de connexion du pilote PostgreSQL psycopg3, consultez psycopg3 Connection Options dans le dépôt GitHub PGAdapter.
- Consultez une présentation des pilotes et des ORM compatibles avec Spanner.