283
魔兽
连接数据库实例__快速入门_云数据库 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-阿里云