ETL篇 – Kettle入库Greenplum – Insert

Kettle的作业与转换

作业(Job)和转换(Transformation)是Kettle Spoon设计器的核心两个内容,这两块内容构建了整个Kettle工作流程的基础。

转换(Transformation):主要是针对数据的各种处理,一个转换里可以包 含多个步骤(Step),每个步骤定义了对数据流中数据的一种操作,整个转换定义了一条数据流。

作业(Job):更加趋向于流程控制。一个作业里包括多个作业项(Job Entry),一个作业项代表了一项工作,而转换也是一种作业项,一个作业里可以包含多个转换。当然作业里也包括其他项,例如:开始、结束、FTP访问等。

作业界面,左侧为作业项(Job Entry)
转换界面,左侧为转换步骤

Kettle insert入库Greenplum

因为数据处理的步骤都在转换里,所以演示暂时以转换为主。Kettle连接Greenplum有几种方式,今天主要介绍Insert方式。我们会用到【转换–>输出–>表输出】和【转换–>输入–>文本文件输入】这2个步骤。

0.前置条件

首先我们需要准备好Greenplum数据库,这里假设大家已经安装完成并开放外部访问权限(pg_hba.conf)。

然后我们用下面的脚本初始化数据库表T1。

[gpadmin1@centos-7 ~]$ psql
psql (9.4.24)
Type "help" for help.

postgres=# create table t1 (id int, name text);
NOTICE:  Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'id' as the Greenplum Database data distribution key for this table.
HINT:  The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
CREATE TABLE
postgres=# insert into t1 values(1,'a'),(2,'b');
INSERT 0 2
postgres=#

1.新建转换

【文件】–>【新建】–>【转换】

2.在转换中增加输入输出步骤

左侧步骤中打开【输入】–> 双击【表输入】或直接将其拖动到右侧设计幕布。

左侧步骤中打开【输出】–> 双击【表输出】或直接将其拖动到右侧设计幕布。

按住键盘shift键,点住鼠标左键,从【表输入】向【表输出】划线,形成数据流连接线。

3.连接Greenplum数据库表

双击【表输入】,在弹出的属性配置对话框中点击【新建】数据库连接,根据下图序号配置Greenplum数据库连接。


上图【确认】完成配置后,在【SQL】部分填写选取表数据的SQL,然后点击【预览】查看是否可以获取到数据。

接下来按照类似的配置,选取数据库连接,并配置表及字段对应关系。

4.执行Insert入库

点击左上角的三角形运行按钮,执行【启动】,保存转换后执行,并查看执行结果。

发表评论

电子邮件地址不会被公开。 必填项已用*标注