PostgreSQL 언어 데이터베이스에 psycopg3 연결

이 페이지에서는 PostgreSQL psycopg3 드라이버를 Spanner의 PostgreSQL 언어 데이터베이스에 연결하는 방법을 설명합니다. psycopg3는 PostgreSQL용 Python 드라이버입니다.

  1. 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 시작을 참조하세요.

  2. 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을 사용합니다.

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 연결 옵션을 참고하세요.