GreenPlum踩坑

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),主机名称以 .开头,samehostsamenet 匹配任意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()。


版权声明:本文为qq_15174755原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。