所需资源

image.png

  1. python运行环境,gpload是python写的。
  2. pygresql是pthon的插件可以读取postgre数据库。
  3. pyyaml是读取配置文件的,ps这个地方很大坑,没有这个文件,没报错,但就是运行不成功。当然也有可能是其他原因导致的。
  4. greenplum-clients,这个需要和gp数据库配套版本。是核心文件。

安装步骤

1,首先安装所需环境,步骤略过;

重点:配置好系统环境变量,保证自己在cmd下可以运行gpload,python

2,部署架构

kettle在windows上,gp在另外一台Linux上,通过在windows安装gp客户端环境实现连接。

3,kettle配置

image.png
image.png

4,关键错误点

现象,执行以后gpload停在哪里没反应。原因是:权限问题,需要提前配置好windows环境下的数据库权限。也就是输入密码的地方。

image.png
如果没有这个配置系统读取不到权限,所以停滞又不报错。通过cmd命令可以检查明细。
image.png

  1. C:\Users\khzc>gpload -f E:\KettleRes\controlgp.cfg -l E:\KettleRes\GPLOGS.LOG -V

相关说明见官网文档
image.png

5,常见错误

还有一个关键问题就是导入的数据条数有偏差,有的数据被丢掉了。

  • 时间戳格式问题,可以用字符串解决;
  • 字段长度问题,调整字符长度;
  • 编码问题,特殊字符替换;

  • 用cmd执行gpload提示权限拒绝

  • 需要使用gpadmin才能创建临时外部表,也可以研究检查一下用户权限。