ETL简单的操作以及开发方式记录(KETTLE)二

来源:互联网 发布:新媒体网络推广 编辑:程序博客网 时间:2024/05/04 12:48

上次的笔记简单记录了相关ETL的基本概念相关信息以及最后使用了一个简单的Demo进行了ETL最基本的数据转存的情况。

在这里我们继续深发,看看有什么是在我们平时工作中会使用到的ETL的其他应用方法,就上节而言,我们使用的是table output这个组件作为我们的输出,简单来看我们只需要填写目的表格的名称,这个显然没有办法满足来自客户的各种奇葩的要求,甚至最简单的UPDATE/INSERT都没法实现,所以我们这节先来讲讲我们的另一种输出UPDATE/INSERT

更新/插入输出

首先新建一个INSERT/UPDATE控件,和其他控件一样拖动过来即可


之后我们打开这个INSERT/UPDATE我们将会看到如下的页面


这里作为一个例子我们将一中的数据库表格进行了简单的修改


然后我们直接执行这个变换看下我们结果表中的结果


来自其他数据库的输入

这个在实际的生产使用中也是经常遇见的一个事,客户提供数据,让你提取指定数据的对应信息的时候,特别还是提供的数据并不是能直接提供在我们方便操作的数据库的时候我们整个人都快要不好了。

然后我们就寻求一种能够直接通过前一个INPUT进行直接将我们所需要的数据作为下一个INPUT的输入信息的方法

我们直接使用的INPUT中使用的是简单的SELECT TEST_ID,TEST_NAME FROM  TEST_KETTLE这样的简单的SQL语句,我们这里来探究下table input还能进行怎样的操作。

之前我们并没有对于下图红框中的内容进行应用


这里我们就来探究下这个红框之中的内容有什么作用吧Insert data from step(相信这个是比较明确的指示,从哪个上一个步骤获取数据)

现在下面没有可以选择的内容,然后我们可以通过新建一个输入来使这个下拉框变得可选


然后注意如果我们需要的每一条具体数据进行查询的时候我们需要勾选每行执行


这里Kettle里面是根据我们的table input2的结果集的次序来进行指引的,所以在这里我们的参数可以以?的形式进行应用,为了方便测试我们在我们测试使用的表中新加一列来完成我们这个例子,实际的应用场景会复杂的多,并且一般不是在同一数据库中。


然后这个是我们的table input2SQL


然后这个是我们的table input1的设置


测试结果如下





0 0
原创粉丝点击