如何连接到HybridDB(Greenplum)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 云数据库 HybridDB 基于开源数据库Greenplum Database,而Greenplum 基于 PostgreSQL 8.2 分支开发,完整兼容其消息协议。因此,HybridDB 用户可以直接使用支持 PostgreSQL 8.2 消息协议的工具,例如 libpq、JDBC、ODBC、psycopg2、pgadmin III 等。 HybridDB提供了Redhat平台的二进制p

云数据库 HybridDB 基于开源数据库Greenplum Database,而Greenplum 基于 PostgreSQL 8.2 分支开发,完整兼容其消息协议。因此,HybridDB 用户可以直接使用支持 PostgreSQL 8.2 消息协议的工具,例如 libpq、JDBC、ODBC、psycopg2、pgadmin III 等。

HybridDB提供了Redhat平台的二进制psql程序下载链接。Greenplum 官网也提供了一个安装包,包含 JDBC、ODBC 和 libpq,方便安装和使用,详情请参见Greenplum 官方文档

psql

psql 是 Greenplum 中比较常用的工具,提供了丰富的命令,其二进制文件在 Greenplum 安装后的 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 中支持的命令。

参考文档

  • 关于 Greenplum 的 psql 的更多使用方法,请参见文档“psql”。
  • 也可以使用 PostgreSQL 的 psql 命令,请注意使用细节上的差异。详情请参见“PostgreSQL 8.3.23 Documentation -- psql”。

pgAdmin III

pgAdmin III 是PostgreSQL图形客户端,可以直接用于连接HybridDB。详情请参见这里

pgAdmin III 1.6.3可以从PostgreSQL官网下载。pgAdmin III 1.6.3支持各种平台(Windows、MacOS、Linux)。注意,HybridDB与PostgreSQL 8.2版本兼容,因此必须使用pgAdmin III 1.6.3或之前的版本才能连接HybridDB(pgAdmin 4也是不支持的)。下载安装后,打开"文件"->"新增服务器"菜单,可以看到配置连接的窗口。按如下图类似的方式,填入”名称“、”主机地址”、“端口号”、“数据库”、“用户名”、“密码”等信息,点击“确定”即可连接到HybridDB。

在pgAdmin中配置HybridDB连接

其他更多图形客户端,请参考 下载链接

JDBC

JDBC 采用 PostgreSQL 的即可。下载方法如下:

代码案例:

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();  
        }  
    }  
}

详细文档,请参见“The PostgreSQL JDBC Interface”。

Python

Python 连接 Greenplum 和 PostgreSQL 用的库是 psycopg2。使用步骤如下:

安装 psycopg2

在 CentOS 下,有如下三种安装方法:

  • 方法一,执行如下命令:

    yum -y install python-psycopg2
  • 方法二,执行如下命令:

    pip install psycopg2
  • 从源码安装:

    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

安装后,设置 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)

libpq

libpq 是 PostgreSQL 数据库的 C 语言接口,在 C 程序中通过 libpq 库访问 PostgreSQL 数据库并进行数据库操作。在安装了 Greenplum 或者 PostgreSQL 之后,在其 lib 目录下可以找到其静态库和动态库。

相关案例请参见这里,此处不再列举。

关于 libpq 详情,请参见“PostgreSQL 9.4.10 Documentation -- Chapter 31. libpq - C Library”。

ODBC

PostgreSQL 的 ODBC 是基于 LGPL(GNU Lesser General Public License)协议的开源版本,可以在 PostgreSQL 官网下载,可以单击这里

  • 安装驱动

    yum install -y unixODBC.x86_64  
    yum install -y postgresql-odbc.x86_64  
  • 查看驱动配置

    cat /etc/odbcinst.ini 
    # Example driver definitions
    
    # Driver from the postgresql-odbc package
    # Setup from the unixODBC package
    [PostgreSQL]
    Description     = ODBC for PostgreSQL
    Driver          = /usr/lib/psqlodbcw.so
    Setup           = /usr/lib/libodbcpsqlS.so
    Driver64        = /usr/lib64/psqlodbcw.so
    Setup64         = /usr/lib64/libodbcpsqlS.so
    FileUsage       = 1
    
    
    # Driver from the mysql-connector-odbc package
    # Setup from the unixODBC package
    [MySQL]
    Description     = ODBC for MySQL
    Driver          = /usr/lib/libmyodbc5.so
    Setup           = /usr/lib/libodbcmyS.so
    Driver64        = /usr/lib64/libmyodbc5.so
    Setup64         = /usr/lib64/libodbcmyS.so
    FileUsage       = 1
  • 配置DSN

    [mygpdb]
    Description = Test to gp
    Driver = PostgreSQL
    Database = ****
    Servername = ****.gpdb.rds.aliyuncs.com
    UserName = ****
    Password = ****
    Port = ****
    ReadOnly = 0
将这里的“****”改成对应的连接信息。
  • 测试连通性

    echo "select count(*) from pg_class" | isql mygpdb
    +---------------------------------------+
    | Connected!                            |
    |                                       |
    | sql-statement                         |
    | help [tablename]                      |
    | quit                                  |
    |                                       |
    +---------------------------------------+
    SQL> select count(*) from pg_class
    +---------------------+
    | count               |
    +---------------------+
    | 388                 |
    +---------------------+
    SQLRowCount returns 1
    1 rows fetched

到这里ODBC即已连接上实例,应用连接ODBC即可,可以参考这里C#连接到PostgreSQL

参考文档

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
移动开发 前端开发 Android开发
mPaaS 常见问题之移动开发平台 mpaas的H5 前端 Kylin 框架引入vant后包特别大如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
510 0
|
10月前
|
监控 前端开发 Java
SpringBoot集成Tomcat、DispatcherServlet
通过这些配置,您可以充分利用 Spring Boot 内置的功能,快速构建和优化您的 Web 应用。
713 21
|
机器学习/深度学习 算法 数据处理
一文讲懂“预测滞后性”:详细解析
本文介绍了预测分析中常见的“预测滞后性”现象及其原因,包括数据收集延迟、模型训练耗时、预测算法延迟及模型特性等。文章还提供了应对策略,如实时数据处理、选择合适模型、在线学习及多方法结合,并附有使用简单移动平均法进行时间序列预测的Python代码示例,帮助读者理解和优化预测过程。
|
Java Maven
[Java ] jdk升级 bug java: -source 8 中不支持 instanceof 中的模式匹配 (请使用 -source 16 或更高版本以启用 instanceof 中的模式匹配)
[Java ] jdk升级 bug java: -source 8 中不支持 instanceof 中的模式匹配 (请使用 -source 16 或更高版本以启用 instanceof 中的模式匹配)
891 0
|
弹性计算 大数据 测试技术
2024年阿里云服务器租用价格_包年/包月/按小时收费明细表
阿里云服务器租用价格表大全,云服务器一年费用、一个月价格以及1小时收费明细,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服务器30元3个月,幻兽帕鲁4核16G和8核32G服务器配置,云服务器ECS可以选择经济型e实例、通用算力u1实例、ECS计算型c7、通用型g7、c8i、g8i等企业级实例规格。今天分享阿里云服务器租用费用最新报价,具体实例规格、配置及月付和年付租用优惠价格表。
324 2
|
存储 安全 Java
核酸检测信息管理系统
核酸检测信息管理系统
|
移动开发 小程序 搜索推荐
【社区每周】“app_logo”提审接口logo大小升至2MB(2022年7月第一期)
【社区每周】“app_logo”提审接口logo大小升至2MB(2022年7月第一期)
162 0
|
Linux 虚拟化 芯片
Linux 中断子系统中GIC 中断控制器基本分析
Linux 中断子系统中GIC 中断控制器基本分析
453 0
Echarts legend图例配置项 设置位置 显示隐藏
Echarts legend图例配置项 设置位置 显示隐藏
2289 0
|
机器学习/深度学习 存储 数据安全/隐私保护
基于 opencv tenserflow2.0 实战 CNN 人脸识别锁定与解锁 win10 屏幕
基于 opencv tenserflow2.0 实战 CNN 人脸识别锁定与解锁 win10 屏幕
300 0
基于 opencv tenserflow2.0 实战 CNN 人脸识别锁定与解锁 win10 屏幕