Questa pagina spiega come connettere il driver PostgreSQL psycopg3 a un database con dialetto PostgreSQL in Spanner. psycopg3
è un driver Python per PostgreSQL.
Verifica che PGAdapter sia in esecuzione sulla stessa macchina dell'applicazione che si connette utilizzando il driver 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
Per ulteriori informazioni, consulta Avvia PGAdapter.
Connettiti a PGAdapter utilizzando 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])
Sostituisci quanto segue:
- APPLICATION_HOST: il nome host o l'indirizzo IP
della macchina in cui è in esecuzione PGAdapter. Se esegui l'app localmente,
utilizza
localhost
. - PORT: il numero di porta su cui è in esecuzione PGAdapter. Modifica questa impostazione nella stringa di connessione se PGAdapter è
in esecuzione su una porta personalizzata. Altrimenti, utilizza la porta predefinita,
5432
.
- APPLICATION_HOST: il nome host o l'indirizzo IP
della macchina in cui è in esecuzione PGAdapter. Se esegui l'app localmente,
utilizza
Socket di dominio Unix
Questa sezione spiega come utilizzare i socket di dominio Unix per connettersi a un database con dialetto PostgreSQL. Utilizza i socket di dominio Unix per la latenza più bassa possibile.
Per utilizzare i socket di dominio Unix, PGAdapter deve essere in esecuzione sullo stesso host dell'applicazione client.
Verifica che il driver JDBC PostgreSQL sia caricato.
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])
Sostituisci quanto segue:
- /tmp: la directory socket di dominio predefinita per
PGAdapter. Puoi modificare questa impostazione utilizzando l'argomento della riga di comando
-dir
. - PORT: il numero di porta su cui è in esecuzione PGAdapter. Modifica questa impostazione nella stringa di connessione se PGAdapter è
in esecuzione su una porta personalizzata. Altrimenti, utilizza la porta predefinita,
5432
.
Passaggi successivi
- Scopri di più su PGAdapter.
- Per maggiori informazioni sulle opzioni di connessione del driver psycopg3 di PostgreSQL, consulta Opzioni di connessione psycopg3 nel repository GitHub di PGAdapter.