GBase 8a
安装配置
文章
精选

perl语言连接GBase8a MPP的两种方法

发表于2025-10-19 13:58:54123次浏览4个评论

当前程序开发中,数据库连接主要采用Java和Python作为实现语言。由于历史遗留原因,部分程序仍采用ADO.net、Perl等其他技术栈进行部署。本次内容将重点介绍Perl连接GBase 8a数据库的两种实现方法。 

1、测试前环境准备 

此次测试操作系统采用的是CentOS7。 

安装介质列表 

* perl 

* unixODBC:ODBC连接测试工具 

* DBD-ODBC: 为 Perl 的 DBI::DBD 提供了 ODBC 驱动的功能 

* gccli: GBase8a MPP字符界面客户端 

* GBaseODBC-9.5.0.2-centos7.x86_64.rpm 

下载地址:https://www.gbase.cn/download/gbase-8a?category=DRIVER_PACKAGE

perl安装

[root@vm220 ~]# yum install perl 

[root@vm220 ~]# perl -v 

# 检查当前版本是perl5.16 

This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi 

... 

2、perl连接GBase 8a的两种方法 

2.1 借助gccli客户端工具连接GBase 8a。 

gccli是GBase提供的一种连接GBase8a MPP的客户端,我们可以用perl脚本直接调用gccli客户端来执行SQL脚本。 

gccli客户端安装 安装GBase 8a的客户端,请请参考产品手册,此处略去。

[gbase@vm220 ~]$ gccli -uroot -proot -e"select @@version"

 +---------------------------------+

 | @@version | 

+---------------------------------+ 

| 9.5.3.27.20_patch.4.r1.1ff35b58 | 

+---------------------------------+ 

编写perl测试脚本 

[gbase@vm220 ~]$ cat test_gccli.pl #! /usr/bin/perl 

# 定义测试SQL 

my $sql="select * from db01.employee"; 

# 连接数据库并执行 

open my $conn,"| gccli -h192.168.10.220 -uroot -proot " or die "$!"; 

# 输出结果 

print $conn $sql,"\n"; 

# 关闭连接 close $conn; 

测试验证 

[gbase@vm220 ~]$ perl test_gccli.pl 

empid name 

100 张三 

105 李四 

216 王五 

2.2、通过ODBC协议连接GBase8a。

ODBC是由微软提出的数据库访问标准应用程序编程接口,大部分数据库管理系统都配置了ODBC驱动以实现应用对自己的访问。unixODBC是一款开源的ODBC驱动管理器。 

GBase 8a ODBC驱动安装 

[root@vm220 ~]# rpm -iv GBaseODBC-9.5.0.2-centos7.x86_64.rpm 

unixODBC安装

[root@vm220 ~]# yum install unixODBC unixODBC-devel 

安装其它依赖的组件

[root@vm220 ~]#  yum install perl-DBI perl-ExtUtils-MakeMaker

用odbinst命令查看配置文件信息 

[gbase@vm220 ~]$ odbcinst -j 

unixODBC 2.3.1 

DRIVERS............: /etc/odbcinst.ini 

SYSTEM DATA SOURCES: /etc/odbc.ini 

FILE DATA SOURCES..: /etc/ODBCDataSources 

USER DATA SOURCES..: /home/gbase/.odbc.ini 

SQLULEN Size.......: 8 

SQLLEN Size........: 8 

SQLSETPOSIROW Size.: 8 

odbinst.ini配置的是驱动信息,GBase8a驱动安装后,会增加下面的一段: 

[gbase@vm220 ~]$ cat /etc/odbcinst.ini ... 

[GBase8a] Driver=/usr/lib64/libgsodbc8.so 

UsageCount=1 ...... 

odb.ini配置了数据源。 

[gbase@vm220 [gbase8a] 

Driver = GBase8a # 与odbcinst.ini中配置的驱动名一致 

DATABASE = db01 

DESCRIPTION = GBase 8a ODBC Driver 

DSN SERVER = 192.168.10.220 

PORT = 5258 

UID = root 

PASSWORD = root 

isql测试GBase8a的连通性 

[gbase@vm220 ~]$ isql gbase8a -v 

+---------------------------------------+ 

| Connected! |

 | |

 | sql-statement | 

| help [tablename] | 

| quit |

| |

 +---------------------------------------+

 SQL> select count(1) from db01.t; 

+---------------------+ 

| count(1) | 

+---------------------+

 | 2 | 

+---------------------+ 

SQLRowCount returns 1 

DBD-ODBC组件安装 

[root@vm220 tmp]# tar -zxf DBD-ODBC-1.61.tar.gz 

[root@vm220 tmp]# cd DBD-ODBC-1.61/ 

[root@vm220 DBD-ODBC-1.61]# perl Makefile.PL 

[root@vm220 DBD-ODBC-1.61]# make && make install

编写测试脚本 

[gbase@vm220 ~]$ cat test_odbc.pl 

#!/usr/bin/perl use DBI; 

use encoding 'utf-8'; 

$dbh=DBI->connect('dbi:ODBC:gbase8a', 'root', 'root'); 

my $sth=$dbh->prepare("select * from db01.employee"); 

$sth->execute(); 

while(@data=$sth->fetchrow_array()) 

print "$data[0] $data[1]\n"; 

}

测试结果 

[gbase@vm220 ~]$ perl test_odbc.pl 

100 张三 

105 李四 

216 王五

评论

登录后才可以发表评论
GBase用户21143发表于 9个月前
辛苦了,周末把文章写的这么好。赞
zhuxinfei发表于 9个月前
Markdown模式有BUG呀,重新编辑打不开正文。
用户头像
郝老师发表于 9个月前
perl 高手!
用户头像
levvel发表于 8个月前
学习一下