全部產品
Search
文件中心

AnalyticDB:Python

更新時間:Jun 19, 2024

本文介紹如何通過Python串連AnalyticDB PostgreSQL版資料庫。

前提條件

  • 已擷取AnalyticDB PostgreSQL版執行個體的串連地址。

    • 如果您的用戶端部署在與AnalyticDB PostgreSQL版執行個體在同一地區且網路類型相同的ECS上,則可以使用內網地址進行串連。登入雲原生資料倉儲AnalyticDB PostgreSQL版控制台基本資料頁面的資料庫連接資訊地區,即可查看內網地址

    • 如果您的用戶端部署在與AnalyticDB PostgreSQL版執行個體在不同地區或網路類型不同的ECS或者阿里雲以外的系統上,則需要申請外網地址後使用外網地址進行串連。申請外網地址的方法,請參見管理外網地址

  • 已擷取用戶端的IP地址,並將用戶端地址加入AnalyticDB PostgreSQL版執行個體白名單中。具體操作,請參見設定白名單

操作步驟

Python串連Greenplum和PostgreSQL時使用psycopg2工具。

  1. 安裝psycopg2。在CentOS系統,安裝方法有如下三種:

    • 執行如下命令:yum -y install python-psycopg2

    • 執行如下命令:pip install psycopg2

    • 從源碼安裝:

      yum install -y postgresql-devel*
      wget  http://initd.org/psycopg/tarballs/PSYCOPG-2-6/psycopg2-2.6.tar.gz
      tar xf psycopg2-2.6.tar.gz
      cd psycopg2-2.6
      python setup.py build
      sudo python setup.py install
  2. psycopg2安裝完成後,需要設定PYTHONPATH環境變數,設定完成後即可引用該變數。環境變數設定如下:

     import psycopg2
     //SQL語句。
     sql = '<SELECT * FROM gp_segment_configuration;>'
     //資料庫連接資訊,分別為資料庫名、使用者名稱、使用者密碼。
     conn = psycopg2.connect(database='<gpdb>', user='<mygpdb>', password='<mygpdb>', host='mygpdbpub.gpdb.rds.aliyuncs.com', port=5432)
     conn.autocommit = True
     cursor = conn.cursor()
     cursor.execute(sql)
     rows = cursor.fetchall()
     for row in rows:
         print row
     conn.commit()
     conn.close()

    完成後會返回結果樣本如下:

    (1, -1, 'p', 'p', 's', 'u', 3022, '192.168.2.158', '192.168.2.158', None, None)
    (6, -1, 'm', 'm', 's', 'u', 3019, '192.168.2.47', '192.168.2.47', None, None)
    (2, 0, 'p', 'p', 's', 'u', 3025, '192.168.2.148', '192.168.2.148', 3525, None)
    (4, 0, 'm', 'm', 's', 'u', 3024, '192.168.2.158', '192.168.2.158', 3524, None)
    (3, 1, 'p', 'p', 's', 'u', 3023, '192.168.2.158', '192.168.2.158', 3523, None)
    (5, 1, 'm', 'm', 's', 'u', 3026, '192.168.2.148', '192.168.2.148', 3526, None)