kettle常见业务操作表输入-表输出

一、kettle主要功能

接触kettle很长时间了,现在已经改名为Pentaho Data Integration,就是数据整合的意思和原来的水壶很相像,数据从壶口装入,壶嘴统一输出。

kettle的功能很多,我当时用的最多的就是跨数据库同步数据的功能,举例,把mysql数据库中的商品信息导入到orcle,因为涉及到跨数据库,手动实现太复杂了,kettle就体现了价值。
最常见功能之一就是更新、插入的功能,如果数据发生了变化或新增,那么就可以将关联对应的字段,将有变化的记录进行更新,插入新增的记录。

二、简述

1.kettle过程描述

整个的数据过程,就是把数据从一个地方搬运到另外一个地方,中途可能需要对数据做一些简单的加工,这是我对这个抽象过程的描述。

比如热水和茶叶一起放到一个茶壶中,经过浸泡,最后输出到一个茶碗中,这就是一个‘转化’的过程。

还有就是将暖壶中的热水,倒进茶壶中,然后再把茶壶中的水倒出到一个碗里面。听起来好像有点鸡肋,其实这就是跨数据库同步数据的过程,因为暖壶的水无法直接倒进茶碗中,因为数据格式等等都是不一样的。

2.输入控件

kettle重要是通过在控件中进行数据的抽取、转化和加载。
输入控件可以简单理解为数据的来源,也就是数据提供方(处),也就是类似于暖壶。

3.输出控件

输出控件类似于茶碗,从茶壶中承接倒出来的内容。

4.kettle

kettle就是中间的茶壶,处理暖壶等来源带来的数据内容。

三、表输入-表输出

这里我用oracle举例,将newjs表中的数据导出到一个新表newjstlt20,大家可以把这一步当成从业务数据层把数据抽到ODS层,基本上就是按照业务数据直接抽取过来。

1.建表

我是在plsql里面建的数据表,这就是将要作为输入的表


create table t_csdn_01(
                      id number(10)
                      , name varchar2(50)
                      , age number                     
);

2.造数据

这里写一个存储过程,插入40条数据。存储过程的写法,大家参考平台的其他入门文章即可。

--向t_csdn_01中插入数据
create or replace procedure sp_csdn_01(p_id in number)	--总id数量

is

v_name varchar2(40);	--接收姓名
v_age number(10);	--接收年龄

begin
  
       for m in 1..p_id loop	--循环插入即可
         
         v_name := dbms_random.string('U', 3);	--随机函数造v_name
         v_age := dbms_random.value * 10 + m;	--随机函数v_age
         
           insert into t_csdn_01(id, name, age)
                       values(m, v_name, v_age);
                       --这里没有用动态sql  
       end loop;
       commit;
       dbms_output.put_line('sp_csdn_01 insert into finished');
end;

设置一个接收变量,直接执行即可,我插入了40条数据。

declare
v_id number := &id;
begin
  
       sp_csdn_01(v_id);
       dbms_output.put_line('block finished');
end;

3.表输出

现在暖壶和茶壶都有了,我现在要把数据转到另外一个表中。可以在数据库中新建一个表,虽然kettle也可以在过程中建表。

--创建输出表
create table t_csdn_02 
as
select id
		, name
		, age
		from t_csdn_01
		where 1 = 2;	

四、新建转化

基础的安装大家参考其他的文章即可,包括需要对应下载的驱动。
首先打开spoon.bat,在文件菜单栏新建一个转换,我们将orcle中的表数据输出到excel中。
在这里插入图片描述
从核心对象中的输入、出入将表输入和表输出拖拽到右侧,按住shift链接2个控件。
在这里插入图片描述
这里需要连接数据库,连接名称,主机名ip地址,数据库名称,端口号默认1521,用户名和登录密码。先测试数据库的连接,看看是否成功。
在这里插入图片描述
这里写查询,需要的对应字段和数据,注意结尾无分号,然后确定。
在这里插入图片描述

这里是设置目标表的内容,同样需要连接数据库,对应的表名,需要勾选指定数据库字段,使用批量插入。
在这里插入图片描述
在数据字段中获取字段,就是表字段和流字段的对应情况。
在这里插入图片描述点击进行运行,需要进行保存。

在这里插入图片描述
控件出现绿箭头,就表示过程没有问题,最后就完成了数据转化。
在这里插入图片描述


版权声明:本文为valkyrja110原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。