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使用排雷相关推荐

  1. CENTOS 8上部署GBase 8a的环境配置

    REDHAT 8/CENTOS 8使用的命令与之前的版本有一些区别,习惯了使用6.7版本的命令在8版本下部署GBase 8a,发现有很多变化.下面是创建虚拟机使用CENTOS 8的ISO安装文件安装环 ...

  2. 【GBASE】南大通用GBase 8a MPP Cluster技术特点

    GBase 8a MPP Cluster 具有多样化的平台选择.与时俱进的逻辑架构.海量数据高效存储.海量数据高速加载.海量数据高性能分析.弹性服务器资源伸缩.完善的系统资源管理.多级别的高可用.跨数 ...

  3. E01 GBase 8a MPP Cluster V95 安装和卸载

    GBase 8a MPP Cluster V95 安装和卸载 一.集群节点环境设计 二.安装前准备工作 三.集群的安装 1.在集群所有节点上创建DBA用户 2.在集群所有节点上创建安装目录并授权 3. ...

  4. GBase 8a MPP Cluster技术先进性

    GBase 8a MPP Cluster作为行业内最先进的MPP数据库分析,从产品成熟性.稳定性.高可用性.高可靠性和高安全性方面具有以下优势,整理如下. 1)低硬件成本:完全使用X86架构的PC S ...

  5. GBase 8a查看和清理故障恢复状态Failover的方法

    GBase 8a在执行dml,ddl等数据变动业务时,为了避免发起节点出现故障,提供了failover机制来清理残余信息,保证集群一致性.针对一些特殊情况,特别是早期的版本,可能存在某些情况需要强行清 ...

  6. GBase 8a MPP Cluster 产品简介

    1 GBase 8a MPP Cluster 产品简介 产品简介 南大通用大规模分布式并行数据库集群系统,简称:GBase 8a MPP Cluster, 它是在 GBase 8a 列存储数据库基础上 ...

  7. GBase 8a MPP Cluster GDCA 认证培训课前准备

    GBase 8a MPP Cluster GDCA 认证培训课前准备 一. GBase 数据库软件获取 1. GBase 8a 数据库安装包.企业管理器和手册下载 二. 自己完成操作系统环境准备 (一 ...

  8. GBase 8a里通过rsync加速调度coor节点的扩容和替换效率

    在GBase 8a的早期版本里,扩容或者节点替换调度节点(coordinator)时,是通过本地tar打包,然后scp传输到新节点来实现的,而tar本身不支持并行,所以代码上是将打包任务按表名字分解成 ...

  9. GBase 8a 集群维护工具C3介绍

    当集群节点机器很多时,例如 20 个节点时,对于集群的一些维护工作需要在每个节点上都执行一次相同操作,这样十分耗时,而且繁琐. 可使用 C3 工具,可以减少集群节点的维护操作,仅在装有 C3 工具的节 ...

最新文章

  1. 在Ubuntu 14.04 64bit上安装redis 3.0.3
  2. Linux 最常用命令(简单易学,但能解决95%以上的问题)
  3. css transform旋转属性
  4. 9大方法为云安全保驾护航
  5. Mysql的B树/B+/B*/R树(补充)
  6. c语言中主函数创建链表,主函数怎么调用函数(数据结构,创建链表)
  7. 24点游戏c语言源代码6,C语言解24点游戏程序
  8. LuoguP5366 [SNOI2017]遗失的答案
  9. C语言程序设计 文件操作函数
  10. 提升用户体验,你不得不知道的事儿——三种提醒框的微技巧
  11. Spring配置补充
  12. Unable to resolve dependency for ':app@debug/compileClasspath'
  13. 同济大学 线性代数 第六版 pdf_线性代数同济大学第六版第一章课后习题答案
  14. pip国内镜像(清华大学镜像)
  15. 基于SSH+MySQL+JSP的体育用品商城系统(附文档)
  16. GIS中的栅格数据结构
  17. 为什么Next-Key Lock可以解决幻读问题
  18. usb-OTG-ADP-HNP-SRP
  19. 转载--成功应聘Intel的真实经历
  20. 数据埋点几种方式介绍

热门文章

  1. 关于APP自动化测试框架
  2. div让两个按钮并排显示在一行中
  3. 介绍XXTEA加密算法
  4. Android应用发送短信的实现
  5. php中配置文件操作config.php文件的读取修改等操作
  6. JAVA通过itextpdf实现PDF骑缝章
  7. 51单片机汇编学习例程(9)——ADC0809篇
  8. Linux 快速删除大量小文件方法
  9. 本特利探头330103-00-12-50-02-00本特利联接电缆9571-20本特利传感器9200-03-02-10-00
  10. vue-cil创建vue项目