283
iPhone_iPad_Mac_手機_平板_蘋果apple
連接數據庫實例__快速入門_雲數據庫 HybridDB-阿裏雲
雲數據庫HybridDB(ApsaraDB HybridDB)是一種在線MPP大規模並行處理數據倉庫服務。雲數據庫HybridDB基於Greenplum Database開源數據庫項目,並由阿裏雲深度擴展支持OSS存儲、JSON數據類型、HyperLogLog預估分析等功能特性。
Greenplum Database開源數據庫(下稱GP)基於PostgreSQL 8.3(下稱PG、PGSQL)分支開發,完整兼容其消息協議,雲數據庫HybridDB同樣基於此版本。因此,理論上來講,支持PGSQL 8.3消息協議的工具(包括如libpq、JDBC、ODBC、psycopg2、pgadmin III等)可以直接作用到GP。
GP官網提供了一個安裝包,包含了JDBC、ODBC和libpq,方便安裝和使用。請參考官方文檔
PSQL
PSQL是GP中比較常用的工具,提供了豐富的命令,其二進製文件在GP安裝後的BIN目錄下。可以通過兩種方式進行連接:
- 連接串的方式
psql "host=yourgpdbaddress.gpdb.rds.aliyuncs.com port=3568 dbname=postgres user=gpdbaccount password=gpdbpassword"
postgres=> select version();
version
-----------------------------------------------------------------------------------------------
PostgreSQL 8.3devel (Greenplum Database 4.3.99.00 build dev) compiled on Jun 26 2016 23:44:59
(1 row)
- 參數指定的方式
psql -h yourgpdbaddress.gpdb.rds.aliyuncs.com -p 3568 -d postgres -U gpdbaccount
之後輸入密碼,進到PSQL的shell界麵。
postgres=> select version();
version
-----------------------------------------------------------------------------------------------
PostgreSQL 8.3devel (Greenplum Database 4.3.99.00 build dev) compiled on Jun 26 2016 23:44:59
(1 row)
其中,“-h”指定主機地址,“-p”指定端口號,“-d“指定數據庫(默認的數據庫是postgres),“-U”指定連接的用戶。更多選項,通過“psql —help”可以看到。在psql中,可以執行”?”查看更多psql中支持的命令。
GP的PSQL的更多使用方法,請參考。
也可以使用PG的PSQL命令,請注意使用細節上的差異。參考。
pgAdmin III是圖形客戶端,相對簡單,請參考或中文版。
JDBC
JDBC采用PG的即可。PostgreSQL的官方JDBC可以在這裏下載到,下載之後加入到環境變量中。也可以采用Greenplum官網提供的工具包,請參考官方文檔。
代碼案例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class gp_conn {
public static void main(String[] args) {
try {
Class.forName("org.postgresql.Driver");
Connection db = DriverManager.getConnection("jdbc:postgresql://mygpdbpub.gpdb.rds.aliyuncs.com:3568/postgres","mygpdb","mygpdb");
Statement st = db.createStatement();
ResultSet rs = st.executeQuery("select * from gp_segment_configuration;");
while (rs.next()) {
System.out.print(rs.getString(1));
System.out.print(" | ");
System.out.print(rs.getString(2));
System.out.print(" | ");
System.out.print(rs.getString(3));
System.out.print(" | ");
System.out.print(rs.getString(4));
System.out.print(" | ");
System.out.print(rs.getString(5));
System.out.print(" | ");
System.out.print(rs.getString(6));
System.out.print(" | ");
System.out.print(rs.getString(7));
System.out.print(" | ");
System.out.print(rs.getString(8));
System.out.print(" | ");
System.out.print(rs.getString(9));
System.out.print(" | ");
System.out.print(rs.getString(10));
System.out.print(" | ");
System.out.println(rs.getString(11));
}
rs.close();
st.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
詳細文檔請參考。
Python
Python連接GP和PG用的庫是psycopg2。在CentOS下的安裝方法很簡單:
yum -y install python-psycopg2
或者
pip install psycopg2
或者從源碼安裝
yum install -y postgresql-devel*
wget https://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
安裝後,設置PYTHONPATH,之後就可以引用,如:
import psycopg2
sql = 'select * from gp_segment_configuration;'
conn = psycopg2.connect(database='gpdb', user='mygpdb', password='mygpdb', host='mygpdbpub.gpdb.rds.aliyuncs.com', port=3568)
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)
ODBC
PostgreSQL的ODBC是以LGPL協議開源的版本,可以在這裏下載到。
也可以參考德哥的博客,裏麵有更詳細的方法和案例。
libpq
libpq是PostgreSQL原生支持用於連接PG的C庫。在安裝了GP或者PG之後,在其lib目錄下可以找到其的靜態庫和動態庫。這裏有很多例子,此處不再列舉。
參考
最後更新:2016-12-01 11:07:40
上一篇:
用戶權限管理__快速入門_雲數據庫 HybridDB-阿裏雲
下一篇:
插件管理__快速入門_雲數據庫 HybridDB-阿裏雲
Python SDK實例程序__最佳實踐_歸檔存儲-阿裏雲
服務SLA__公眾趨勢分析-阿裏雲
阿裏雲的專業技術認證分為哪些?__常見問題_技術認證相關問題_專業技術認證-阿裏雲
分析界麵配置__使用手冊_畫像分析-阿裏雲
產品驗證失敗如何處理__產品驗證_備案流程_備案-阿裏雲
服務市場條件__服務商入駐_服務商_雲市場-阿裏雲
設置健康檢查鏈接__應用設置_用戶指南_企業級分布式應用服務 EDAS-阿裏雲
使用阿裏雲Java應用向導__使用手冊_Eclipse 插件-阿裏雲
Android SDK API__API手冊_數據風控-阿裏雲
領域列表_阿裏雲幫助中心-阿裏雲,領先的雲計算服務提供商
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲