GBase 8a Python Connector使用排雷
GBase 8a是一款优秀的MPP数据库,使用Python3开发ETL程序可以并行执行,并异步输出格式化的日志到文件,比传统的使用存储过程开发ETL的方式更优。
GBase 8a 提供的 GBase Python Connector可以用于操作GBase 8a数据库。本人使用的gbase8a_pythonAPI4python3.x目前的版本为3.0.1,该版本在使用中有一些问题,需要改进才能更好的使用,以下内容基于该版本。
端口参数
官方的接口参数一般有以下常用参数:
conn = GBaseConnector.connect(
host=host,
user=user,
password=password,
database=database,
autocommit=autocommit)
从源文件GBaseConnection.py分析可以看到,调用connect方法后调用了parsecfg方法解析参数,源代码如下:
再看一下init方法中对参数的初始化:
从源文件GBaseConnection.py中可以看到默认端口为5258,数据类型为整型。从java转过来的程序员习惯使用properties文件作为参数文件,这时候读取的参数都是字符,使用dict传递参数后,GBase 8a驱动会将数据类型自动转换,如下图所示:
因此,端口号无论是使用字符串,还是使用整型,都能正确识别。
connection_timeout参数
从源文件可以看出,该参数为默认为30秒,数据类型为整数。但是如果直接从properties文件加载,却不能正确识别,经过源码分析,是因为驱动程序未对该参数做类型转换,采取直接赋值的方式接收参数,如下图所示:
因此,connection_timeout参数不设置的情况下,默认就是30秒,如果ETL执行过程比较长,日志中将会出现"Lost connection to GBase server during query"的错误。
datetime类型数据的检索
python3.x中使用gbase 8a的驱动在检索datetime类型数据时,会报“TypeError: a bytes-like object is required, not ‘str’”的错误,经过跟踪调试,发现错误原因是datetime类型字段返回的数为bytes类型,驱动程序在执行GBaseUtils.py文件的_DATETIME_to_python方法(第321行)中的 (sd, st) = v.split(’ ')发生错误。经过分析,发现该代码在python 2.7的驱动能正确执行,但是在pyhont 3.x时,该代码应该增加数据类型转换。增加321行和322行,修改后的代码如下所示:
同样,操作time类型字段时,也有这样的错误,需要对_TIME_to_python方法作同样的修改。
虽然GBase 8a的python驱动有一些问题,但是,瑕不掩瑜,这并不妨碍GBase 8a是一款优秀的MPP数据库。
GBase 8a Python Connector使用排雷相关推荐
- CENTOS 8上部署GBase 8a的环境配置
REDHAT 8/CENTOS 8使用的命令与之前的版本有一些区别,习惯了使用6.7版本的命令在8版本下部署GBase 8a,发现有很多变化.下面是创建虚拟机使用CENTOS 8的ISO安装文件安装环 ...
- 【GBASE】南大通用GBase 8a MPP Cluster技术特点
GBase 8a MPP Cluster 具有多样化的平台选择.与时俱进的逻辑架构.海量数据高效存储.海量数据高速加载.海量数据高性能分析.弹性服务器资源伸缩.完善的系统资源管理.多级别的高可用.跨数 ...
- E01 GBase 8a MPP Cluster V95 安装和卸载
GBase 8a MPP Cluster V95 安装和卸载 一.集群节点环境设计 二.安装前准备工作 三.集群的安装 1.在集群所有节点上创建DBA用户 2.在集群所有节点上创建安装目录并授权 3. ...
- GBase 8a MPP Cluster技术先进性
GBase 8a MPP Cluster作为行业内最先进的MPP数据库分析,从产品成熟性.稳定性.高可用性.高可靠性和高安全性方面具有以下优势,整理如下. 1)低硬件成本:完全使用X86架构的PC S ...
- GBase 8a查看和清理故障恢复状态Failover的方法
GBase 8a在执行dml,ddl等数据变动业务时,为了避免发起节点出现故障,提供了failover机制来清理残余信息,保证集群一致性.针对一些特殊情况,特别是早期的版本,可能存在某些情况需要强行清 ...
- GBase 8a MPP Cluster 产品简介
1 GBase 8a MPP Cluster 产品简介 产品简介 南大通用大规模分布式并行数据库集群系统,简称:GBase 8a MPP Cluster, 它是在 GBase 8a 列存储数据库基础上 ...
- GBase 8a MPP Cluster GDCA 认证培训课前准备
GBase 8a MPP Cluster GDCA 认证培训课前准备 一. GBase 数据库软件获取 1. GBase 8a 数据库安装包.企业管理器和手册下载 二. 自己完成操作系统环境准备 (一 ...
- GBase 8a里通过rsync加速调度coor节点的扩容和替换效率
在GBase 8a的早期版本里,扩容或者节点替换调度节点(coordinator)时,是通过本地tar打包,然后scp传输到新节点来实现的,而tar本身不支持并行,所以代码上是将打包任务按表名字分解成 ...
- GBase 8a 集群维护工具C3介绍
当集群节点机器很多时,例如 20 个节点时,对于集群的一些维护工作需要在每个节点上都执行一次相同操作,这样十分耗时,而且繁琐. 可使用 C3 工具,可以减少集群节点的维护操作,仅在装有 C3 工具的节 ...
最新文章
- 在Ubuntu 14.04 64bit上安装redis 3.0.3
- Linux 最常用命令(简单易学,但能解决95%以上的问题)
- css transform旋转属性
- 9大方法为云安全保驾护航
- Mysql的B树/B+/B*/R树(补充)
- c语言中主函数创建链表,主函数怎么调用函数(数据结构,创建链表)
- 24点游戏c语言源代码6,C语言解24点游戏程序
- LuoguP5366 [SNOI2017]遗失的答案
- C语言程序设计 文件操作函数
- 提升用户体验,你不得不知道的事儿——三种提醒框的微技巧
- Spring配置补充
- Unable to resolve dependency for ':app@debug/compileClasspath'
- 同济大学 线性代数 第六版 pdf_线性代数同济大学第六版第一章课后习题答案
- pip国内镜像(清华大学镜像)
- 基于SSH+MySQL+JSP的体育用品商城系统(附文档)
- GIS中的栅格数据结构
- 为什么Next-Key Lock可以解决幻读问题
- usb-OTG-ADP-HNP-SRP
- 转载--成功应聘Intel的真实经历
- 数据埋点几种方式介绍