暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

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

原创 Lily_tj 2024-04-24
1267

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 的整体结构。

image.png

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选项,之后默认安装即可。

image.png

配置环境变量

右击此电脑 > 属性 > 高级系统设置 > 环境变量,检查一下在系统变量中path变量中是否已经有python变量。双击 path变量查看,若没有,可以新建增加,增加python安装路径,增加python安装路径中的scripts目录即可。增加效果看下图:

image.png

安装GBase Python

建议 gbase-connector-python-9.5.3_build2.zip 文件解压到一个没中文的目录下
在DOS界面下,使用python命令进行安装,在 .\gbase-connector-python\ 目录下的 consolez 下执行 python setup.py install

image.png

验证是否装好 :
在 DOS 下执行 pip list 可以看到列表中有 gbase-connnector-python
image.png

安装pycharm

双击pycharm-community-2023.1.2.exe 安装即可。

安装完pycharm, 需要调试python解释器。
打开parcharm软件,点击设置 > 项目 > python解释器

新打开的时候应该是没有 python3.8 解释器的
没有解释器,则我们手动添加解释器。
点击添加解释器 > 添加本地解释器
第一步选择virtualenv环境 ;第二步选择新建;第三步输入python的安装路径;第四步选择解释器为python.exe;第五步点击确定。
image.png
完成上述步骤之后,就能在上一步python解释器中查看有python3.8的解释器存在了。
image.png

至此,整个连接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条记录。
image.png

打开企业管理器,查询test库下面确实有python程序新创建的testpython表,里面记录是100条。

image.png

参考资料

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论