问题:
在python环境中,Gbase数据库问题:GBaseonnector.GBaseError: OperationalError: 2055: Lost connection to GBase server at ‘x.x.x.x:5258’, system error: timed out.
排查过程中发现,不管是查询多少数据量或者写入多少数据量,总是会偶尔报这个问题,数据量太大时(我的任务大约是200万+)就每次都报该错,写入数据量大(我的任务大约19万+)也是每次都报该错,并且每次基本都是数据写进去了,还报这个错误。
问题分析
我采用的是Gbase的python驱动:gbase-connector-python3-8.0.3
用的是Gbase 8a程序员手册python3.pdf文件中的方式连接数据库
即便是将连接超时时间设置参数connect_timeout设置的大,也还是有该问题。
可以参考博文https://blog.csdn.net/qq_33800672/article/details/124276852这篇文章提到python中如果ETL执行过程比较长,日志中将会出现"Lost connection to GBase server during query"的错误。
解决办法
采用python的pymysql连接Gbase数据库.连接方式如下:
dbcon = pymysql.connect(host=gbase_host, port=int(gbase_port), database=gbase_db, user=gbase_user, password=gbase_passwd)