所需资源
- python运行环境,gpload是python写的。
- pygresql是pthon的插件可以读取postgre数据库。
- pyyaml是读取配置文件的,ps这个地方很大坑,没有这个文件,没报错,但就是运行不成功。当然也有可能是其他原因导致的。
- greenplum-clients,这个需要和gp数据库配套版本。是核心文件。
安装步骤
1,首先安装所需环境,步骤略过;
重点:配置好系统环境变量,保证自己在cmd下可以运行gpload,python
2,部署架构
kettle在windows上,gp在另外一台Linux上,通过在windows安装gp客户端环境实现连接。
3,kettle配置
4,关键错误点
现象,执行以后gpload停在哪里没反应。原因是:权限问题,需要提前配置好windows环境下的数据库权限。也就是输入密码的地方。
如果没有这个配置系统读取不到权限,所以停滞又不报错。通过cmd命令可以检查明细。
C:\Users\khzc>gpload -f E:\KettleRes\controlgp.cfg -l E:\KettleRes\GPLOGS.LOG -V
相关说明见官网文档
5,常见错误
还有一个关键问题就是导入的数据条数有偏差,有的数据被丢掉了。
- 时间戳格式问题,可以用字符串解决;
- 字段长度问题,调整字符长度;
- 编码问题,特殊字符替换;
用cmd执行gpload提示权限拒绝
需要使用gpadmin才能创建临时外部表,也可以研究检查一下用户权限。