1、kettle学习文档整理第一期Kettle Functions:1.Export of database(s) to text-file(s) or other databases 2.Import of data into databases, ranging from text-files to excel sheets3.Data migration between database applications 4.Exploration of data in existing databases. (tables, views, synonyms,) 5.Information enri
2、chment by looking up data in various information stores (databases, text-files, excel sheets )6.Data cleaning by applying complex conditions in data transformations 7.Application integration 8.Data warehouse population with built-in support for slowly changing dimensions(SCD), junk dimensions and mu
3、ch, much more第三部分:数据库间的数据转换 Data migration between database applications 1、首先介绍常用环节的具体功能类别环节名称功能说明输入文本文件输入从本地文本文件输入数据表输入从数据库表中输入数据获取系统信息读取系统信息输入数据 输出文本文件输出处理结果输出到文本文件 表输出将处理结果输出到数据库表插入/更新 根据处理结果对数据库表插入更新,如果数据库中不存在相关记录则插入,否则为更新。会根据查询条件中字段进行判断 更新根据处理结果对数据库进行更新,若需要更新的数据在数据库表中无记录,则会报错停止删除 根据处理结果对数据库记录进行
4、删除,若需要删除的数据在数据库表中无记录,则会报错停止查询数据库查询 根据设定的查询条件,对目标表进行查询,返回需要的结果字段流查询将目标表读取到内存,通过查询条件对内存中数据集进行查询调用DB存储过程调用数据库存储过程转换字段选择选择需要的字段,过滤掉不要的字段,也可做数据库字段对应过滤记录根据条件对记录进行分类排序记录将数据根据某条件,进行排序空操作无操作增加常量 增加需要的常量字段技巧说明:1如果只是插入数据则用“表输出”,“表输出”比“插入/更新”快,因为它不需要判断。2如果只是更新数据则用“更新”,“更新”比插入/更新快,因为不需要判断。2、创建数据库连接在transformatio
5、n页面下,点击左边的【主对象树】,双击【DB连接】,进行数据库连接配置,如下图所示:如果创建kettle不支持的数据库的连接,ConnectionType选择Generic database。遇到难点:连接SQL Server 2005时问题a) 右击DB连接新建数据库连接向导。最终test会成功连接。b) 右击DB连接新建。最终会报错,如下图所示:目前未找到相关解决方法。3、从数据库中读取数据。(加工数据需要先读取数据)定义一个“表输入”,在“SQL”中输入SQL语句从数据库中读取信息,如下上图功能点介绍:“编辑”:对数据库连接属性修改。“新建”:新建一个新的DB连接。“获取SQL查询语句”
6、:,操作表名可生成基本的SQL语句。“允许延迟转换”:未涉及。“替换SQL语句里的变量”:执行语句时替换环境变量($variable_name)“从步骤插入数据”:指定我们期待读取数据的步骤名称,这些信息能被插入到sql语句。“执行每一行”:有可能从前一节点中获取多条数据,所以选中则可执行多次。注意:上面两个操作选项在增量更新中会涉及。简单介绍一个例子:“记录数量限制”:从数据库中读取的行数,0表示所以行。4、与不同或同数据源进行数据库查询联合 定义“数据库查询”,使用字段值在数据库里查询值,如下图所示:“查询的表”:需联合的表“查询所需关键字”:前面的表字段是当前目标表的字段,后面的字段1是
7、数据流里面的字段。 “查询返回值”:返回目标表中查询的值,可增加新的名称(值对应)以上相当于语句:SELECT 数据流.*, from 数据流,k_account where k_account.a_name = 数据流.t_name关键点:当你设置好数据查询节点后,目标表字段发生改变,此时“查询所需关键字”的字段选项会存在缓存,解决方案如下图所示:选中表右击truncate table点击清除缓存后重启该节点解决。5、将获得的数据输出 定义“表输出”,数据输出到各种数据库中,如下图:“裁剪表”:在第一行数据插入之前裁剪表“Specify database fields”:选中,可对输出表设置
8、映射。“Dadabase fields”:设置映射,如下图注意字段的约束条件(主键),会影响到数据是否正常输出到数据库表中最终案例展示:6、使用连接查询(Merge Join)解决上述抽取、转换、装载过程1定义2个“表输入”(不同数据库不同表),见上面相同步骤:我们这里为userinfo和login两个输入,如下图:注意:如果是同一数据源中的2个表之间,其实直接可以在SQL里面联合解决2定义“Merge Join”合并上面2个输入连接设置见下图:3定义“插入/更新”这个步骤利用查询关键字在表中搜索行。未找到行,就插入行;如果能被找到,并且被更新的字段没有任何改变,就do noting,otherwise行就被更新,前提是“不执行任何更新”未选中。“不执行任何更新”:选中,数据库的值永远不会被更新,仅仅可以插入。“用来查询的关键字”:根据数据流和目标表关键字查询。“更新字段”:插入/更新的字段,注意字段的约束条件有时会遇到问题:输入流的排序插入数据条数过多
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1