閱讀283 返回首頁    go 魔獸


連接數據庫實例__快速入門_雲數據庫 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目錄下。可以通過兩種方式進行連接:

  • 連接串的方式
  1. psql "host=yourgpdbaddress.gpdb.rds.aliyuncs.com port=3568 dbname=postgres user=gpdbaccount password=gpdbpassword"
  2. postgres=> select version();
  3. version
  4. -----------------------------------------------------------------------------------------------
  5. PostgreSQL 8.3devel (Greenplum Database 4.3.99.00 build dev) compiled on Jun 26 2016 23:44:59
  6. (1 row)
  • 參數指定的方式
  1. psql -h yourgpdbaddress.gpdb.rds.aliyuncs.com -p 3568 -d postgres -U gpdbaccount

之後輸入密碼,進到PSQL的shell界麵。

  1. postgres=> select version();
  2. version
  3. -----------------------------------------------------------------------------------------------
  4. PostgreSQL 8.3devel (Greenplum Database 4.3.99.00 build dev) compiled on Jun 26 2016 23:44:59
  5. (1 row)

其中,“-h”指定主機地址,“-p”指定端口號,“-d“指定數據庫(默認的數據庫是postgres),“-U”指定連接的用戶。更多選項,通過“psql —help”可以看到。在psql中,可以執行”?”查看更多psql中支持的命令。

GP的PSQL的更多使用方法,請參考

也可以使用PG的PSQL命令,請注意使用細節上的差異。參考

pgAdmin III是圖形客戶端,相對簡單,請參考中文版

JDBC

JDBC采用PG的即可。PostgreSQL的官方JDBC可以在這裏下載到,下載之後加入到環境變量中。也可以采用Greenplum官網提供的工具包,請參考官方文檔

代碼案例:

  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.sql.Statement;
  6. public class gp_conn {
  7. public static void main(String[] args) {
  8. try {
  9. Class.forName("org.postgresql.Driver");
  10. Connection db = DriverManager.getConnection("jdbc:postgresql://mygpdbpub.gpdb.rds.aliyuncs.com:3568/postgres","mygpdb","mygpdb");
  11. Statement st = db.createStatement();
  12. ResultSet rs = st.executeQuery("select * from gp_segment_configuration;");
  13. while (rs.next()) {
  14. System.out.print(rs.getString(1));
  15. System.out.print(" | ");
  16. System.out.print(rs.getString(2));
  17. System.out.print(" | ");
  18. System.out.print(rs.getString(3));
  19. System.out.print(" | ");
  20. System.out.print(rs.getString(4));
  21. System.out.print(" | ");
  22. System.out.print(rs.getString(5));
  23. System.out.print(" | ");
  24. System.out.print(rs.getString(6));
  25. System.out.print(" | ");
  26. System.out.print(rs.getString(7));
  27. System.out.print(" | ");
  28. System.out.print(rs.getString(8));
  29. System.out.print(" | ");
  30. System.out.print(rs.getString(9));
  31. System.out.print(" | ");
  32. System.out.print(rs.getString(10));
  33. System.out.print(" | ");
  34. System.out.println(rs.getString(11));
  35. }
  36. rs.close();
  37. st.close();
  38. } catch (ClassNotFoundException e) {
  39. e.printStackTrace();
  40. } catch (SQLException e) {
  41. e.printStackTrace();
  42. }
  43. }
  44. }

詳細文檔請參考

Python

Python連接GP和PG用的庫是psycopg2。在CentOS下的安裝方法很簡單:

  1. yum -y install python-psycopg2
  2. 或者
  3. pip install psycopg2

或者從源碼安裝

  1. yum install -y postgresql-devel*
  2. wget https://initd.org/psycopg/tarballs/PSYCOPG-2-6/psycopg2-2.6.tar.gz
  3. tar xf psycopg2-2.6.tar.gz
  4. cd psycopg2-2.6
  5. python setup.py build
  6. sudo python setup.py install

安裝後,設置PYTHONPATH,之後就可以引用,如:

  1. import psycopg2
  2. sql = 'select * from gp_segment_configuration;'
  3. conn = psycopg2.connect(database='gpdb', user='mygpdb', password='mygpdb', host='mygpdbpub.gpdb.rds.aliyuncs.com', port=3568)
  4. conn.autocommit = True
  5. cursor = conn.cursor()
  6. cursor.execute(sql)
  7. rows = cursor.fetchall()
  8. for row in rows:
  9. print row
  10. conn.commit()
  11. conn.close()

會得到類似以下的結果:

  1. (1, -1, 'p', 'p', 's', 'u', 3022, '192.168.2.158', '192.168.2.158', None, None)
  2. (6, -1, 'm', 'm', 's', 'u', 3019, '192.168.2.47', '192.168.2.47', None, None)
  3. (2, 0, 'p', 'p', 's', 'u', 3025, '192.168.2.148', '192.168.2.148', 3525, None)
  4. (4, 0, 'm', 'm', 's', 'u', 3024, '192.168.2.158', '192.168.2.158', 3524, None)
  5. (3, 1, 'p', 'p', 's', 'u', 3023, '192.168.2.158', '192.168.2.158', 3523, None)
  6. (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目錄下可以找到其的靜態庫和動態庫。這裏有很多例子,此處不再列舉。

詳細的文檔

參考

  1. Pivotal Greenplum官方文檔
  2. ODBC編譯
  3. ODBC下載
  4. JDBC下載

最後更新:2016-12-01 11:07:40

  上一篇:go 用戶權限管理__快速入門_雲數據庫 HybridDB-阿裏雲
  下一篇:go 插件管理__快速入門_雲數據庫 HybridDB-阿裏雲