本文介紹如何通過Python串連AnalyticDB PostgreSQL版資料庫。
前提條件
已擷取AnalyticDB PostgreSQL版執行個體的串連地址。
如果您的用戶端部署在與AnalyticDB PostgreSQL版執行個體在同一地區且網路類型相同的ECS上,則可以使用內網地址進行串連。登入雲原生資料倉儲AnalyticDB PostgreSQL版控制台。在基本資料頁面的資料庫連接資訊地區,即可查看內網地址。
如果您的用戶端部署在與AnalyticDB PostgreSQL版執行個體在不同地區或網路類型不同的ECS或者阿里雲以外的系統上,則需要申請外網地址後使用外網地址進行串連。申請外網地址的方法,請參見管理外網地址。
已擷取用戶端的IP地址,並將用戶端地址加入AnalyticDB PostgreSQL版執行個體白名單中。具體操作,請參見設定白名單。
操作步驟
Python串連Greenplum和PostgreSQL時使用psycopg2工具。
安裝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
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)