Kettle中文名称叫水壶,该项目的主程序员MATT希望把各种数据放到一个壶里然后以一种指定的格式流出。Kettle主要包括四部分,分别为Chef,Spoon,Kitchen,Pan。 Kettle 提供一个图形用户界面Spoon,用来设计数据转换过程。在Spoon中,用户可以使用左面的组件树,在右面的面板中设计转换流程,并在Log View面板中查看运行结果。日后系列文章介绍图形用户界面Spoon中各组件的使用。

        本文选用的kettle版本为3.2,但5.4版本之前皆可通用

        1.资源库管理

spoon插件 kafka spoon工具怎么用_资源库

登陆时可以选择没有资源库即可进入Kettle,此时所定义的转换和工作将只能存储在本地磁盘上,以.ktr文件和.kjb文件的方式。若使用资源库登录,则所有定义的转换和工作将会存储到资源库里。实际上,资源库就是一个数据库,比如SQL SERVER数据库,里面存储了 Kettle定义的元素的相关元数据,简单而言,就是元数据库。如果资源库创建完毕,则资源库的相关信息将存储在文件 “reposityries.xml”中,它位于你的缺省home 目录的隐藏目录“.kettle”中。如果是windows 系统,这个路径就是 c:\Documents andSettings\<username>\.kettle。

1.1新建资源库

1)新建到资源库的的数据库连接

spoon插件 kafka spoon工具怎么用_kettle_02

点击新建按钮,弹出以下对话框:                      

spoon插件 kafka spoon工具怎么用_kettle_03

a.数据库连接是让我们选择数据库连接,这里意思为我们可以在本地数据库新建一个或多个数据库(比如 sql server 数据库)做资源库,然后连接到该资源库 b.表示资源库的名字

我们 初没有资源库,则点击

spoon插件 kafka spoon工具怎么用_数据库_04

新建按钮,新建一个数据库(做资源库)连接,注意前提是(sql server 为例)已存在该数据库,如何建立到数据库的连接:


(1)我们首先以在 sqlserver 下创建的 KettleZyk 数据库为例,我们选择 ODBC 方式连接到 sql server。首先配置 KettleZyk数据库的 ODBC 源:

                      

spoon插件 kafka spoon工具怎么用_kettle_05

(2)点击新建按钮,做如下设置。点击编辑按钮可以编辑这个连接。删除则删除该连接。

             

spoon插件 kafka spoon工具怎么用_数据库_06

2)创建资源库

选择好刚创建的数据库连接,填写好资源库名称,点击按钮创建新资源库弹出:

           

spoon插件 kafka spoon工具怎么用_spoon插件 kafka_07


意思是“对于资源库用ODBC 连接支持不是很好, 好用本地 JDBC 连接”,因为资源库对

ODBC 方式支持不是很好,好使用本地连接。我们继续,弹出:

          

spoon插件 kafka spoon工具怎么用_kettle_08

意思为在这个数据库连接下创建资源库,即在 kettleZyk 数据库中创建资源库选择是,弹出:

       

spoon插件 kafka spoon工具怎么用_spoon插件 kafka_09

“你是否想做一次演练以在执行之前评价产生的 sql 语句”。意思为创建资源库这个过程执行之前您是否想看看这个创建过程的具体sql 语句(因为创建资源库就是在 KettleZyk 数据库中创建表,它询问我们要不要看这些建表的语句)我们选择“否”,则直接创建资源库,完成后弹出:

        

spoon插件 kafka spoon工具怎么用_kettle_10

我们选择“是”,则弹出 sql 语句对话框,里面显示的是创建所有表和插入相关数据的 sql 语句。

         

spoon插件 kafka spoon工具怎么用_sql_11

点击关闭则退出创建资源库的过程,点击 clear cache 则清空数据库缓存,点击 Excetue 则执行这些 sql 语句,创建资源库:

         

spoon插件 kafka spoon工具怎么用_kettle_12


我们回过头来看这些sql 语句,我们发现它不仅创建了表,还向表中插入了相关的数据,我们看到有几行语句是,

CREATE TABLE R_PROFILE 
( 
  ID_PROFILE BIGINT PRIMARY KEY
, NAME VARCHAR(255) , DESCRIPTION VARCHAR(255) 
) 
; 
INSERT INTO R_PROFILE(ID_PROFILE, NAME, DESCRIPTION) VALUES 
(1,'Administrator','Administrator profile, manage users'); 
INSERT INTO R_PROFILE(ID_PROFILE, NAME, DESCRIPTION) VALUES (2,'User','Normal user, all tools');

INSERT INTO R_PROFILE(ID_PROFILE, NAME, DESCRIPTION) VALUES 
(3,'Read-only','Read-only users'); 
我们再看创建完资源库后数据库中表的情况:
R_Profile 表

 

CREATE TABLE R_USER 
( 
  ID_USER BIGINT PRIMARY KEY
, ID_PROFILE INT
, LOGIN VARCHAR(255) 
, PASSWORD VARCHAR(255) 
, NAME VARCHAR(255) 
, DESCRIPTION VARCHAR(255) , ENABLED CHAR(1) 
) 
; 
INSERT INTO R_USER(ID_USER, ID_PROFILE, LOGIN, PASSWORD, NAME, DESCRIPTION, 
ENABLED) VALUES (1,1,'admin','2be98afc86aa7f2e4cb79ce71da9fa6d4','Administrator','User manager','Y'); 
INSERT INTO R_USER(ID_USER, ID_PROFILE, LOGIN, PASSWORD, NAME, DESCRIPTION, ENABLED) VALUES (2,3,'guest','2be98afc86aa7f2e4cb79ce77cb97bcce','Guest account','Read-only guest account','Y');

 

我们再看创建完资源库后数据库中表的情况:

R_User

spoon插件 kafka spoon工具怎么用_数据库_13

R_User R_Profile 两个表是存储登陆资源库的用户信息的,包括登陆名、密码和用户权限,我们必须先弄清 R_User 表的这些信息,因为它已经插入了信息,我们在登陆时需要用到这些用户信息。关于用户信息即如何登陆在“资源库登陆和用户管理”中详细描述。