GreenPlum踩坑

2023-03-13 00:00:00 用户 数据库 执行 名称 参数设置

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 METHOD
host 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

相关文章