GreenPlum是面向数据仓库应用的关系型数据库,基于PostgreSQL开发。坑点较多,目前可能已经过时了,以下记录一些踩坑的问题。
python连接库greenplum使用的PostgreSQL,一般安装psycopg2只需要pip install psycopg2即可。不过这个库在安装编译的时候容易产生问题,可以使用psycopg2-binary替代。因为是根据不同的系统编译的版本,psycopg2-binary一定要根据系统的实际情况下载安装对应的版本,对linux一般有两个不同的版本,不能确定的情况下建议同时下载以防万一。
不允许登录pg_hba.conf中配置,增加特定IP即可。
pg_hba.conf的配置格式:
# TYPE DATABASE USER ADDRESS METHODhost all gpadmin 10.3.1.200/32 trust
TYPE 参数设置TYPE 表示主机类型,值可能为: local 表示是unix-domain的socket连接,host 是TCP/IP socket, hostssl 是SSL加密的TCP/IP socket。
DATABASE 参数设置DATABASE 表示数据库名称,值可能为:all ,sameuser,samerole,replication,数据库名称 ,或者多个数据库名称用 逗号,注意ALL不匹配 replication。
USER 参数设置USER 表示用户名称,值可以为: all,一个用户名,一组用户名 ,多个用户时,可以用 ,逗号隔开,或者在用户名称前缀 + ;在USER和DATABASE字段,也可以写一个单独的文件名称用 @ 前缀,该文件包含数据库名称或用户名称。
ADDRESS 参数设置该参数可以为 主机名称 或者IP/32(IPV4)或 IP/128(IPV6),主机名称以 .开头,samehost或samenet 匹配任意Ip地址 。
METHOD 参数设置
该值可以为"trust", “reject”, “md5”, “password”, “scram-sha-256”, “gss”, “sspi”, “ident”, “peer”, “pam”, “ldap”, “radius”, “cert”。
查看数据表postgre sql查看所有的数据表没有show tables命令,替代的是\d命令,\d 用于查看具体的表结构,相当于describe 。直接执行\d+可以查看每个数据当前的大小。
execute执行出错psycopg2 in failed sql transaction: current transaction is aborted commands ignored until end of transaction block
大概的意思当前事务被中止,直到事务结束前的命令都将被忽略。
解决办法:可能是将execute语句的内容当作了所谓的事务,具体的解决办法在执行cursor.execute()前执行一次conn.commit()。
本文来源:https://blog.csdn.net/qq_15174755/article/details/108633022