本頁說明如何將 PostgreSQL psycopg3 驅動程式連線至 Spanner 中的 PostgreSQL 方言資料庫。psycopg3
是 PostgreSQL 的 Python 驅動程式。
確認 PGAdapter 與應用程式執行於同一部電腦,且應用程式使用 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 \ -x
詳情請參閱「啟動 PGAdapter」。
使用 TCP 連線至 PGAdapter。
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])
更改下列內容:
- APPLICATION_HOST:執行 PGAdapter 的電腦主機名稱或 IP 位址。如要在本機執行,請使用
localhost
。 - PORT:PGAdapter 執行的通訊埠號碼。如果 PGAdapter 在自訂連接埠上執行,請在連線字串中變更此設定。否則請使用預設通訊埠
5432
。
- APPLICATION_HOST:執行 PGAdapter 的電腦主機名稱或 IP 位址。如要在本機執行,請使用
Unix 網域通訊端
本節說明如何使用 Unix 網域通訊端連線至 PostgreSQL 方言資料庫。使用 Unix 網域通訊端,盡可能縮短延遲時間。
如要使用 Unix 網域通訊端,PGAdapter 必須與用戶端應用程式在同一部主機上執行。
確認已載入 PostgreSQL JDBC 驅動程式。
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])
更改下列內容:
- /tmp:PGAdapter 的預設網域通訊端目錄。您可以使用
-dir
指令列引數變更這項設定。 - PORT:PGAdapter 執行的通訊埠號碼。如果 PGAdapter 在自訂連接埠上執行,請在連線字串中變更此設定。否則請使用預設通訊埠
5432
。
後續步驟
- 進一步瞭解 PGAdapter。
- 如要進一步瞭解 PostgreSQL psycopg3 驅動程式連線選項,請參閱 PGAdapter GitHub 存放區中的 psycopg3 連線選項。