Questa pagina spiega come connettere il driver psycopg3 di PostgreSQL a un database di dialetti PostgreSQL in Spanner. psycopg3 è un driver Python per PostgreSQL.
Verifica che PGAdapter sia in esecuzione sulla stessa macchina dell'applicazione che si connette mediante il driver psycopg3 di 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 \ -xPer saperne di più, 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. In caso di esecuzione locale,
utilizza
localhost. - PORT: il numero di porta su cui è in esecuzione PGAdapter. Se PGAdapter è in esecuzione su una porta personalizzata, modifica questa impostazione nella stringa di connessione. Altrimenti, utilizza la porta predefinita
5432.
- APPLICATION_HOST: il nome host o l'indirizzo IP della macchina in cui è in esecuzione PGAdapter. In caso di esecuzione locale,
utilizza
Socket di dominio Unix
Questa sezione spiega come utilizzare i socket di dominio Unix per connettersi a un database di dialetti 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 di 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 dei socket di dominio predefinita per PGAdapter. Puoi cambiarla utilizzando l'argomento della riga di comando
-dir. - PORT: il numero di porta su cui è in esecuzione PGAdapter. Se PGAdapter è in esecuzione su una porta personalizzata, modifica questa impostazione nella stringa di connessione. Altrimenti, utilizza la porta predefinita
5432.
Passaggi successivi
- Scopri di più su PGAdapter.
- Per saperne di più sulle opzioni di connessione del driver psycopg3 di PostgreSQL, consulta Opzioni di connessione di psycopg3 nel repository GitHub di PGAdapter.