《KETTLE使用说明中文版.ppt》由会员分享,可在线阅读,更多相关《KETTLE使用说明中文版.ppt(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、KETTLE1.1 什么是kettle Kettle 是”kettle E.T.T.L Envirnonment”首字母缩写,这意味着设计实现ETL需要:抽取,转换,装入和加载数据。Spoon 是一个图形用户界面,它允 许运行转换或者任务,其中转换是用pan工具来运行,任务是用Kitchen来运行。Pan 是一个数据转换引擎,它可以执行很多功能。例如从不同的数据源读取、操作和写入数据。Kitchen 是一个可以运行利用xml或数据资源库描述的任务,通常任务是在规定的时间间隔内用批处理的模式自动运行。1.2 安装kettle要运行Kettle,必须按安装java 环境1.4或以上版本,kettl
2、e下载可以到:http:/kettle.pentaho.org 取得最新版本。(pdi-ce-4.0.1-stable.zip)1.3 运行spoon 下面是不同平台上运行spoon 所支持的脚本:spoon.bat windows 平台运行Spoon.Spoon.sh linux 平台运行Spoon.1.4 资源库 一个Kettle 资源库可以包含那些转换信息,这意味着为了从数据资源中加载一个转换,你必须连接相应的资源库。1.5 资源库自动登录 可以设置以下环境变量,来让 Spoon 自动登录资源库。环境变量:KETTLE_REPOSITORY,KETTLE_USER,KETTLE_PASS
3、WORD 1.6 定义1.6.1 转换 l 1.Value:Values 是行的一部分,且包含以下类型的数据是行的一部分,且包含以下类型的数据:Strings,floating point Numbers、unlimited precision BigNumbers、Integers、Dates 或者或者 Boolean.l 2.Row:一行包含一行包含0个或者个个或者个Valuesl 3.Output Stream:一个一个Output Stream 是离开一个步骤时的行的堆栈。是离开一个步骤时的行的堆栈。l 4.Input Stream:一个一个Input Stream 是进入一个步骤时的
4、行的堆栈。是进入一个步骤时的行的堆栈。l 5.Hop:一个一个Hop 代表两个步骤之间的一个或者多个数据流。一个代表两个步骤之间的一个或者多个数据流。一个Hop总是代总是代 表着一个步骤的输出流和一个步骤的输入流。表着一个步骤的输出流和一个步骤的输入流。l 6.Note:一个一个Note 是一个转换附加的文本注释信息。是一个转换附加的文本注释信息。1.6.2 任务 l 1.Job Entry:一个一个Job Entry 是一个任务的一部分,它执行某些内容。是一个任务的一部分,它执行某些内容。l 2.Hop:一个一个Hop 代表两个步骤之间的一个或者多个数据流。一个代表两个步骤之间的一个或者多个
5、数据流。一个Hop总是代总是代 表着两个表着两个Job Entry 之间的连接,并且能够被原始的之间的连接,并且能够被原始的Job Entry设置,无设置,无条件的执行下一个条件的执行下一个JobEntry,直到执行成功或者失败。直到执行成功或者失败。l 3.Note:一个一个Note 是一个任务附加的文本注释信息。是一个任务附加的文本注释信息。1.7选项你可以改变很多选项来增强图形用户界面的个性化。例如设置窗体的字体和颜色。此选项在 Tools/选项 中设置。1.8搜索元数据v 通过 编辑/搜索元数据(ctr+f)来使用这个特性。v这个选项将在可用的字段、连接器、注释以及所有加载的任务和转换
6、中搜索,并展示搜索的结果。2 新建一个转换或任务v可以通过工具栏上的文件/新建/来建立一个转换或任务,也可以直接在主对象页签栏双击转换,新建一个转换。选择好需要创建的文件类型后,将会根据你的选择,创建一个图形界面。v转换 作业3 数据库连接v一个连接描述了kettle连接数据库的方法,左边的菜单展示了所有可用的连接。3.1 选项l 1.Connection name:定义转换或任务访问的连接的唯一名称,可自行设置,但不能为空。2.Connection Type:连接的数据类型 3.Access:可以是Native(JDBC),odbc,oci,jndi.一般选择JDBC 4.HostName:
7、指定数据库部署的主机或者服务器的名称,也可以指定IP地址。5.DataBase Name:指定连接的数据库的名称,如果是ODBC方式就指定DSN名称。6.port Number:设定数据库监听的TCP/IP端口号 7.user Name/password:指定连接数据库的用户名和密码 3.2 SQL 编辑器(SQL Editor)l1.描述 Spoon 提供简单SQL 编辑器,可以实现创建表,删除索引或者修改字段。大多数的DDL,例如:create/alter table,create index,create sequence 命令都可以通过SQL编辑器窗口运行。(新建转换,输出是表输出时,
8、可打开SQL 编辑器)l2.局限性 这只是一个简单的SQL 编辑器,它不可能完全知道超过20种它所支持的数据库的方言。这意味着创建存储过程,触发器或者其他的数据库对象可能带来很多问题。在这种情况下,应考虑使用数据库自带的工具。4.数据库浏览器l1.描述 数据库浏览器只显示可用的表,视图或者目录 5.新建一个转换 v选择表输入,excel 输出,建立节点连接。右击连接线,可编辑连线属性。5.1常用输入:v表输入vExcel 输入v文本文件输入vXML 文件输入vCUBE 输入(多维数据集)v获取系统信息5.2输入:表输入v选择表输入,点击鼠标右键,选择编辑步骤。v步骤名称可以更改,一般更改为和输
9、入表相关的名称。v数据库连接:选择一个已建好的数据库连接,也可以新建一个。v点击”获取SQL查询语句”,可弹出数据库浏览器,选择自己需要的表或视图。v选择好表或视图后,SQL 区域会显示相应的SQL,如选择在SQL里包含字段名,你所选择的表的所有字段均会显示.v在SQL区域用户可手动修改SQL语句。5.3 输出:Excel 输出vExcel 输出编辑步骤选项,有三个选项卡,文件/内容/字段。v文件选项卡:文件名选择输出文件保存的路径。v扩展名:系统默认为xls.v内容选项卡:一般不需做修改。v字段选项卡:点击获取字段,输入流中的字段全部会获取到,不需要的字段,可选中不需要的行,右键删除。5.4
10、 输出:插入/更新v 插入/更新:若流里的数据在目标表中不存在,执行插入,否则执行更新,数据量不大的情况下,一般采用插入/更新操作。5.5 输出:更新v这个步骤类似于插入/更新步骤,除了对数据不作插入操作之外。它仅仅执行更新操作。5.6 输出:删除v这个步骤类似于更新步骤,除了不更新操作之外,其他的行均被删除。5.7 输出:表输出v这个步骤可以存取信息到数据库中5.8 输出:XML输出v这个步骤允许你从源中写入行到一个或多个xml文件。6.0 转换:去除重复记录v这个步骤从输入流中移除重复的记录v步骤名称:在单一步骤中必须唯一vRedirect duplicate:如果想知道多少重复行被去掉,
11、就勾选此项。v字段名:用来比较的字段的字段名称。6.1 转换:排序记录v这个步骤利用你指定的字段排序行,无论他们是按照升序还是降序。v当行数超过5000行的时候,Kettle 使用临时文件来排序行。v排序目录:临时文件存储的目录,如果缺省则为标准的系统临时文件夹。v临时文件前缀:选择一个容易记的前缀,以便在临时目录中查找。v压缩临时文件:当需要完成排序的时候,这个选项将压缩临时文件。6.2 转换:增加序列v这个步骤在流里增加一个序列,一个序列是在某个起始值 和增量的基础上,经常改变的整数值。可以使用数据库的序列,也可以使用kettle决定的序列vKettle 序列在同一个转换中是唯一使用的,每
12、一次转换运行的时候,序列的值又会重新循环一次,从开始值开始。v使用数据库获取序列:v 连接名称:选择数据库序列存在的 连接名称v 序列名称:数据库序列的名称v使用计数器来计算序列:如果想使用kettle生成的序列,使用此项。v计数器名称(可选):如果一个转换中多个步骤生成同样的值名称,这个选项允许你指定计数器的名称,避免按照先后顺序通过多个步骤。v起始值:序列的起始值v增量:序列的增量v最大值:序列的最大值,如果超过,将重新开始6.3 转换:拆分字段v这个步骤允许根据分隔符来拆分之盾。v步骤名称:在单一转换中必须唯一v需要拆分的字段:想要拆分的字段的名称。v分隔符:决定字段结束的分隔符v字段:
13、拆分形成的字段列表。v例如:某字段包含:(123,456,789),使用逗号(,)分割符,可将字段分成三个段。7.0 Flow:空操作(什么也不做)v这个操作说明都不做,它的主要作用是,在你想做测试的时候,充当一个占位符。7.1 Flow:过滤记录v这个步骤根据条件和比较符来过滤记录。v发送true数据给步骤:指定条件返回true的数据将发送到此步骤v发送false数据给步骤:指定条件返回false 的数据将发送到此步骤。vTrue 和false 步骤必须指定。7.2 Flow:Abort(中止)v这个步骤允许你在观察输入的时候中止步骤,它的主要用途是错误处理,在一定数量的行流过错误的连接时中
14、止转换。v失败阀值:中止转换的开始行数。如果设置为0,在第一行的时候,步骤将被中止。v失败信息:中止的时候放入日志文件的消息,如果没有输入就使用缺省消息。v总是记录行数:中止步骤总是记录处理的行数。7.3 Flow:Blocking Step(被冻结的步骤)v这是一个非常简单的步骤,它冻结所有的输出,直到从上一个步骤来的最后一行数据到达,最后 一行数据将发送到下一步。你可以使用这个步骤触发常用插件、存储过程和js等等。8.0 连接:Merge Join(合并排序)v这个步骤将来自两个不同的步骤输入的数据执行一个高效的合并。合并选项包括INNER,LEFT OUTER,RIGHT OUTER,F
15、ULL OUTER.v这个步骤将输入的行按照指定的字段存储v被合并的两个步骤,必须按照相同的段进行排序。8.1 连接:合并记录v这个步骤允许你比较两个行流。如果想在两个不同的时间比较数据,这是非常有用的。它常被用于数据仓库源系统没有包含最后更新日期的情况。v两个行流被合并,一个是引用流(旧数据),一个是比较流(新数据),每次都是行里的最后版本通过进入下一步骤,行有以下标记:v“Identical”:关键字在两个流中都存在,并且值相同v“changed”:关键字在两个流中都存在,但一个或更多的值不同v“new”:引用流中没有找到关键字v“deleted”:比较流中没有找到关键字。v比较流中的数据进入下一步骤,除非在”删除”的情况。9.0 作业 核心对象v1.通用v(1).START:start是任务执行的入口,首先必须是任务可以执行。只有无条件的任务条目可以从start 入口连接。v(2)job:另外一个Job.v(3)Success v(4)Transformation:选择一个已经存在的.ktr文件。v(5)dummy:v(6)set variables9.1 作业 核心对象v右击start,选择编辑作业入口,可设置定时。如下图所示。v在job中使用Dummy 条目将什么也不做,这可以使一个任务更清晰的展示,或者在执行循环中使用。
限制150内