このページでは、PostgreSQL psycopg3 ドライバを Spanner の PostgreSQL 言語データベースに接続する方法について説明します。psycopg3
は、PostgreSQL 用の Python ドライバです。
PostgreSQL psycopg3 ドライバを使用して接続しているアプリケーションと同じマシンで PGAdapter が実行されていることを確認します。
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 について詳細を確認する。
- PGAdapter GitHub リポジトリの psycopg3 接続オプションで PostgreSQL psycopg3 ドライバの接続オプションについて詳細を確認する。