使用GBase Python连接GBase 8a MPP Cluster数据库集群(附代码和操作步骤)

Python是一门高级的通用编程语言,适用于广泛的领域:Web开发、数据科学、人工智能和机器学习、自动化运维和测试、游戏开发等多个应用场景。
本文使用一个例子来说明Python语言如何使用连接访问GBase 8a MPP Cluster数据库集群。
GBase Python 概述
GBase Python 接口是 Python 语言连接并使用 GBase 数据库的接口驱动程序。GBase Python 接口基于 Python Database API Specification 2.0 标准编写。接口兼容标准的同时并支持如下特性:
完全支持 GBase 8a 及 8a 集群的特性
完全支持 SQL 标准语法
支持二进制流插入、更新
支持批量插入优化
支持多 SQL 语句执行和获取多结果集
支持 TCP/IP 协议
支持 Python 的 datetime 和 GBase 时间类型的映射。
GBase Python 架构
GBase Python 接口提供了统一的客户端访问数据库、获取数据、管理数据
的方式,使用如下介绍的核心类完成所有数据库操作。
主要包括4个核心类:
GBaseConnection :GBase 数据库的连接。
GBaseCursor :执行 GBase 数据库操作的游标类,可以执行 SQL 语句、存储过程、获取结果集。
GBaseError :异常处理类,定义接口抛出的异常。
GBaseConstants :常量类,定义客户端标记、字符集等。
下图展示了 GBase Python 的整体结构。
Python测试环境准备
本文的例子是在Windows电脑上编写并执行,使用到的软件包括:
python 3.8版本:python-3.8.7rc1-amd64.exe (python3以上版本都可以)
python 集成环境(IDE):pycharm-community-2023.1.2.exe
GBase Python:gbase-connector-python-9.5.3_build2.zip
以上安装包可以从网上搜索下载,GBase Python 驱动安装包需要找GBase技术人员索要或者在官网www.gbase.cn进行申请。
安装python 3.8
安装python3.8时,双击python-3.8.7rc1-amd64.exe, 勾选 Add python 3.8 to path选项,之后默认安装即可。
配置环境变量
右击此电脑 > 属性 > 高级系统设置 > 环境变量,检查一下在系统变量中path变量中是否已经有python变量。双击 path变量查看,若没有,可以新建增加,增加python安装路径,增加python安装路径中的scripts目录即可。增加效果看下图:
安装GBase Python
建议 gbase-connector-python-9.5.3_build2.zip 文件解压到一个没中文的目录下
在DOS界面下,使用python命令进行安装,在 .\gbase-connector-python\ 目录下的 consolez 下执行 python setup.py install
验证是否装好 :
在 DOS 下执行 pip list 可以看到列表中有 gbase-connnector-python
安装pycharm
双击pycharm-community-2023.1.2.exe 安装即可。
安装完pycharm, 需要调试python解释器。
打开parcharm软件,点击设置 > 项目 > python解释器
新打开的时候应该是没有 python3.8 解释器的
没有解释器,则我们手动添加解释器。
点击添加解释器 > 添加本地解释器
第一步选择virtualenv环境 ;第二步选择新建;第三步输入python的安装路径;第四步选择解释器为python.exe;第五步点击确定。
完成上述步骤之后,就能在上一步python解释器中查看有python3.8的解释器存在了。
至此,整个连接GBase 8a MPP Cluster数据库的python环境就搭建完成了。关键点都介绍清楚了,下面就开始写代码连接8a数据库了。
Python连接 GBase 8a 代码
在pycharm中新建一个ceshi.py文件,写上下面例子代码。
代码实现连接8a数据库,并在test数据库中新建一个testpython表,插入100条数据,然后查询。
# 在 python 文件头部引用接口类gbase.connector
from
gbase.connector
import
connect,Error
# gbase 8a数据库的服务器管理节点IP、数据库名称,用户名和秘密信息
config = {
'host'
:
'139.9.241.217'
,
'port'
:
22059
,
'database'
:
'test'
,
'user'
:
'guest'
,
'passwd'
:
'peixun'
}
try
:
# 连接gbase 8a数据库
conn = connect()
conn.connect(**config)
cur = conn.cursor()
# 执行SQL
cur.execute(
"DROP TABLE IF EXISTS testpython"
)
# 新建表
cur.execute(
"CREATE TABLE testpython (COL1 INT, COL2 VARCHAR(20))"
)
opfmt =
"INSERT INTO testpython(COL1, COL2) VALUES(%s, %s)"
rows = []
# 向表中插入100条数据
for
i
in
range
(
0
,
100
):
rows.append((i,
"row"
+
str
(i)))
cur.executemany(opfmt, rows)
conn.commit()
# 查询表中的数据
cur.execute(
"SELECT * FROM testpython"
)
rows = cur.fetchall()
for
row
in
rows:
print(row)
except
Error
as
e:
print(e)
finally
:
if
conn
is
not
None
:
conn.close()
执行后,屏幕上显示出表的查询结果,显示100条记录。
打开企业管理器,查询test库下面确实有python程序新创建的testpython表,里面记录是100条。
参考资料
《GBase 8a 程序员手册PYTHON篇.pdf 》
下载: 《GBase 8a 程序员手册PYTHON篇.pdf 》
评论

热门帖子
- 12023-05-09浏览数:17134
- 22020-05-11浏览数:10826
- 32019-04-26浏览数:10497
- 42023-09-25浏览数:10378
- 52023-07-04浏览数:9711