获得技术资料内容,请访问Greenplum中文社区网站
Greenplum 作为分布式大数据计算平台,除了可以高速并行执行分析查询,还以高速的数据加载著称。Greenplum 用户麦煜遥将在本文详细介绍如何使用开源的ETL工具kettle和gpload实现向Greenplum 高速加载数据。
近期,因工作需要,需要通过kettle往Greenplum数据库导入数据,但发现"表输出"的组件非常慢,500条/秒。后来,研究Greenplum批量加载功能,最后发现能达12000条/秒。
![19b83259-155f-4ef9-a97c-b5fe5cbc8499.png](https://i-blog.csdnimg.cn/blog_migrate/b576a37dd59abd756a2be8e246716077.png)
原理
开始,我以为要在Greenplum 数据库server开 gpfdist服务,然后在服务器端建外部表。
后来,发现是在kettle本机装Greenplum loads的服务端,在本机开 gpfdist服务,在本机运行Greenplum外部表,数据保存在data file中,外部表的定义在control file中。data file和control file可以设定在运行程序后,保留或自动删除。
以下是集群的情况:
运行Greenplum loads,依赖很多软件(这就是开源,一些人开发出开源工具,其他人借助这些工具,又开发出很酷的功能,只是当我们使用很酷的功能时,要到各处下载依赖工具)。
实现过程
一、Windows下kettle使用gpload加载数据到Greenplum
1.下载软件
(1)下载Greenplum-loaders-5.0.0-WinXP-x86_32.msi
先查查Greenplum的gpload是什么版本,以免兼容问题,我用的是5.0.0版本。
* 要下载,先注册。填用户名、邮箱,然后用邮箱激活。
https://network.pivotal.io/products/pivotal-gpdb>/releases/6929/file_groups/691
* 官方网站提示:Greenplum loader要求安装 Python 2.5.4 (32-bit version),因为里面的加载程序 (gpload.py) 是用python写的,版本是2.5。
(2)下载python-2.5.4.msi
https://www.python.org/downloads/windows/
我的电脑是win7 64位,但是装这个32位的python也可以运行,既然可以运行就不考究了。
(3)下载PyYAML-3.10.win32-py2.5.exe
https://pypi.org/project/PyYAML/3.10/>files
YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。我们要下载python语言中的PyYAML安装包。
(4)下载PyGreSQL-4.1.1.win-amd64-py2.5.msi
(5)下载PyGreSQL-4.1.1.win-amd64-py2.5.exe
http://pygresql.org/files/
Python使用PyGreSQL操作PostgreSQL数据库教程,Greenplum的内核PostgreSQL。两个文件一起下载,先装.msi文件,再装.exe文件。
2.安装软件 (1)按图中顺序安装
有一点切记:安装python和PyGreSQL...msi时,选择使用用户,要选”this user only”,否则安装PyGreSQL...exe将出现注册表中没有python。
(2)配置环境变量
PYTHON_HOME是我自己配的,好像没用。但安装后 GPHOME_LOADERS 和 PYTHONPATH 会自动生成,它是用Greenplum里面自带的python运行。