Auf dieser Seite wird erläutert, wie Sie den PostgreSQL-Treiber `psycopg3` mit
einer Datenbank im PostgreSQL-Dialekt in Spanner verbinden. psycopg3 ist ein Python-Treiber für PostgreSQL.
Prüfen Sie, ob PGAdapter auf demselben Computer wie die Anwendung ausgeführt wird, die eine Verbindung mit dem PostgreSQL-Treiber `psycopg3` herstellt.
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 \ -xWeitere Informationen finden Sie unter PGAdapter starten.
Stellen Sie über TCP eine Verbindung zu PGAdapter her.
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])Ersetzen Sie Folgendes:
- APPLICATION_HOST: Der Hostname oder die IP-Adresse des
Computers, auf dem PGAdapter ausgeführt wird. Bei einer lokalen Ausführung verwenden Sie
localhost. - PORT: Die Portnummer, auf der PGAdapter ausgeführt wird. Ändern Sie diese in der Verbindungs-URL, wenn PGAdapter auf einem benutzerdefinierten Port ausgeführt wird. Verwenden Sie andernfalls den Standardport
5432.
- APPLICATION_HOST: Der Hostname oder die IP-Adresse des
Computers, auf dem PGAdapter ausgeführt wird. Bei einer lokalen Ausführung verwenden Sie
Unix Domain Sockets
In diesem Abschnitt wird erläutert, wie Sie Unix Domain Sockets verwenden, um eine Verbindung zu einer Datenbank im PostgreSQL-Dialekt herzustellen. Verwenden Sie Unix Domain Sockets, um die Latenz so gering wie möglich zu halten.
Damit Sie Unix Domain Sockets verwenden können, muss PGAdapter auf demselben Host wie die Clientanwendung ausgeführt werden.
Prüfen Sie, ob der PostgreSQL-JDBC-Treiber geladen ist.
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])
Ersetzen Sie Folgendes:
- /tmp: Das Standardverzeichnis für Domain Sockets für
PGAdapter. Dies kann mit dem Befehlszeilenargument
-dirgeändert werden. - PORT: Die Portnummer, auf der PGAdapter ausgeführt wird. Ändern Sie diese in der Verbindungs-URL, wenn PGAdapter auf einem benutzerdefinierten Port ausgeführt wird. Verwenden Sie andernfalls den Standardport
5432.
Nächste Schritte
- Weitere Informationen zu PGAdapter.
- Weitere Informationen zu den Verbindungsoptionen für den PostgreSQL-Treiber `psycopg3` finden Sie im PGAdapter-GitHub-Repository unter siehe psycopg3 Connection Options.
- Übersicht der für Spanner unterstützten Treiber und ORMs.