Topik ini menjelaskan cara menggunakan Python untuk terhubung ke instance AnalyticDB for PostgreSQL.
Prasyarat
Endpoint internal atau publik dari instance AnalyticDB for PostgreSQL telah diperoleh.
Jika klien Anda berada pada instance Elastic Compute Service (ECS) di wilayah dan tipe jaringan yang sama dengan instance AnalyticDB for PostgreSQL, Anda dapat menggunakan endpoint internal untuk terhubung ke instance AnalyticDB for PostgreSQL. Masuk ke konsol AnalyticDB for PostgreSQL. Di halaman Basic Information, lihat bagian Database Connection Information untuk menemukan internal endpoint dari instance tersebut.
Jika klien Anda berada pada instance ECS di wilayah berbeda, menggunakan tipe jaringan berbeda dari instance AnalyticDB for PostgreSQL, atau sistem di luar Alibaba Cloud, Anda harus mengajukan endpoint publik dan menggunakan endpoint tersebut untuk terhubung. Untuk informasi lebih lanjut tentang cara mengajukan endpoint publik, lihat Kelola endpoint publik.
Alamat IP klien Anda telah ditambahkan ke daftar putih alamat IP dari instance AnalyticDB for PostgreSQL. Untuk informasi lebih lanjut, lihat Konfigurasi daftar putih alamat IP.
Prosedur
Anda dapat menggunakan psycopg2 untuk terhubung ke Greenplum atau PostgreSQL dalam Python.
Instal psycopg2. Jika Anda menggunakan CentOS, gunakan salah satu metode instalasi berikut:
Metode 1: Jalankan perintah
yum -y install python-psycopg2.Metode 2: Jalankan perintah
pip install psycopg2.Metode 3: Gunakan kode sumber.
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
Tetapkan variabel lingkungan PYTHONPATH untuk referensi variabel selanjutnya. Contoh kode:
import psycopg2 // Pernyataan SQL. sql = '<SELECT * FROM gp_segment_configuration;>' // Nama database, nama pengguna, dan kata sandi yang digunakan untuk terhubung ke instance. 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()Contoh keluaran:
(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)