kettle学习文档整理第一期.docx

上传人:b****7 文档编号:10846080 上传时间:2023-02-23 格式:DOCX 页数:13 大小:341.41KB
下载 相关 举报
kettle学习文档整理第一期.docx_第1页
第1页 / 共13页
kettle学习文档整理第一期.docx_第2页
第2页 / 共13页
kettle学习文档整理第一期.docx_第3页
第3页 / 共13页
kettle学习文档整理第一期.docx_第4页
第4页 / 共13页
kettle学习文档整理第一期.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

kettle学习文档整理第一期.docx

《kettle学习文档整理第一期.docx》由会员分享,可在线阅读,更多相关《kettle学习文档整理第一期.docx(13页珍藏版)》请在冰豆网上搜索。

kettle学习文档整理第一期.docx

kettle学习文档整理第一期

KettleFunctions:

1.Exportofdatabase(s)totext-file(s)orotherdatabases

2.Importofdataintodatabases,rangingfromtext-filestoexcelsheets

3.Datamigrationbetweendatabaseapplications

4.Explorationofdatainexistingdatabases.(tables,views,synonyms,)

5.Informationenrichmentbylookingupdatainvariousinformationstores(databases,text-files,excelsheets)

6.Datacleaningbyapplyingcomplexconditionsindatatransformations

7.Applicationintegration

8.Datawarehousepopulationwithbuilt-insupportforslowlychangingdimensions(SCD),junkdimensionsandmuch,muchmore

第三部分:

数据库间的数据转换

Datamigrationbetweendatabaseapplications

1、首先介绍常用环节的具体功能

类别

环节名称

功能说明

输入

文本文件输入

从本地文本文件输入数据

表输入

从数据库表中输入数据

获取系统信息

读取系统信息输入数据

 

输出

文本文件输出

处理结果输出到文本文件

表输出

将处理结果输出到数据库表

插入/更新

根据处理结果对数据库表插入更新,如果数据库中不存在相关记录则插入,否则为更新。

会根据查询条件中字段进行判断

更新

根据处理结果对数据库进行更新,若需要更新的数据在数据库表中无记录,则会报错停止

删除

根据处理结果对数据库记录进行删除,若需要删除的数据在数据库表中无记录,则会报错停止

查询

数据库查询

根据设定的查询条件,对目标表进行查询,返回需要的结果字段

流查询

将目标表读取到内存,通过查询条件对内存中数据集进行查询

调用DB存储过程

调用数据库存储过程

 

转换

字段选择

选择需要的字段,过滤掉不要的字段,也可做数据库字段对应

过滤记录

根据条件对记录进行分类

排序记录

将数据根据某条件,进行排序

空操作

无操作

增加常量

增加需要的常量字段

技巧说明:

1 如果只是插入数据则用“表输出”,“表输出”比“插入/更新”快,因为它不需要判断。

2 如果只是更新数据则用“更新”,“更新”比"插入/更新"快,因为不需要判断。

2、创建数据库连接

<1>在transformation页面下,点击左边的【主对象树】,双击【DB连接】,进行数据库连接配置,如下图所示:

<2>如果创建kettle不支持的数据库的连接,ConnectionType选择Genericdatabase。

遇到难点:

连接SQLServer2005时问题

a)右击DB连接>新建数据库连接向导。

最终test会成功连接。

b)右击DB连接>新建。

最终会报错,如下图所示:

目前未找到相关解决方法。

3、从数据库中读取数据。

(加工数据需要先读取数据)

定义一个“表输入”,在“SQL”中输入SQL语句从数据库中读取信息,如下

上图功能点介绍:

“编辑”:

对数据库连接属性修改。

“新建”:

新建一个新的DB连接。

“获取SQL查询语句”:

,操作表名可生成基本的SQL语句。

“允许延迟转换”:

未涉及。

“替换SQL语句里的变量”:

执行语句时替换环境变量(${variable_name})

“从步骤插入数据”:

指定我们期待读取数据的步骤名称,这些信息能被插入到sql语句。

“执行每一行”:

有可能从前一节点中获取多条数据,所以选中则可执行多次。

注意:

上面两个操作选项在增量更新中会涉及。

简单介绍一个例子:

“记录数量限制”:

从数据库中读取的行数,0表示所以行。

4、与不同或同数据源进行数据库查询联合

定义“数据库查询”,使用字段值在数据库里查询值,如下图所示:

“查询的表”:

需联合的表

“查询所需关键字”:

前面的表字段是当前目标表的字段,后面的字段1是数据流里面的字段。

“查询返回值”:

返回目标表中查询的值,可增加新的名称(值对应)

以上相当于语句:

SELECT数据流.*,from数据流,k_accountwherek_account.a_name=数据流.t_name

关键点:

当你设置好数据查询节点后,目标表字段发生改变,此时“查询所需关键字”的字段选项会存在缓存,解决方案如下图所示:

选中表右击>truncatetable

点击清除缓存后重启该节点解决。

5、将获得的数据输出

定义“表输出”,数据输出到各种数据库中,如下图:

“裁剪表”:

在第一行数据插入之前裁剪表

“Specifydatabasefields”:

选中,可对输出表设置映射。

“Dadabasefields”:

设置映射,如下图

注意字段的约束条件(主键),会影响到数据是否正常输出到数据库表中

最终案例展示:

6、使用连接查询(MergeJoin)解决上述抽取、转换、装载过程

1 定义2个“表输入”(不同数据库不同表),见上面相同步骤:

我们这里为userinfo和login两个输入,如下图:

注意:

如果是同一数据源

中的2个表之间,其实直接可以在SQL里面联合解决

2 定义“MergeJoin”合并上面2个输入

连接设置见下图:

3 定义“插入/更新”

这个步骤利用查询关键字在表中搜索行。

未找到行,就插入行;如果能被找到,并且被更新的字段没有任何改变,就donoting,otherwise行就被更新,前提是“不执行任何更新”未选中。

“不执行任何更新”:

选中,数据库的值永远不会被更新,仅仅可以插入。

“用来查询的关键字”:

根据数据流和目标表关键字查询。

“更新字段”:

插入/更新的字段,注意字段的约束条件

有时会遇到问题:

输入流的排序

插入数据条数过多

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1