阅读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-阿里云