kettle第一课讲义
- 格式:pdf
- 大小:870.34 KB
- 文档页数:32
kettle入门教程Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。
Kettle 中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job 则完成整个工作流的控制。
方法/步骤1.Kettle的下载与安装(在本文中使用的kettle版本为7.0.0.0-25)运行要求:JDK1.8kettle的最新下载地址:/projects/data-integration/2.打开kettle首先解压下载下来的压缩包如:pdi-ce-7.0.0.0-25.zip然后打开Spoon.bat,如图所示:打开后请耐心等待一会儿时间。
3.建立转换。
在文件->新建装换。
新建转换后在左边的主对象树中建立DB连接用以连接数据库。
如图所示:建立数据库连接的过程与其他数据库管理软件连接数据库类似。
注意:在数据库链接的过程中,可能会报某个数据库连接找不到的异常。
那是因为你没有对应的数据库链接驱动,请下载对应驱动后,放入kettle的lib文件夹。
4.简单的数据表插入\更新(1)新建表插入在左边的面板中选择“核心对象”,在核心对象里面选择“输入->表输入”,用鼠标拖动到右边面板。
如图所示:5.双击拖过来的表,可以编辑表输入。
选择数据库连接和编辑sql语句,在这一步可以点击预览,查看自己是否连接正确。
6.(2)通过插入\更新输出到表。
在左边面板中选择核心对象、选择“输出->插入\更新”如图所示:7.编辑插入更新:首先:表输入连接插入更新。
选中表输入,按住shift键,拖向插入更新。
Kettle简要说明文档一.Spoon1 . 登陆方式1.1 以创建Repository的方式登陆,会把生成的transformation保存到数据库上,在Sybase 数据库环境上有存在很多bug,不推荐以该种方式登陆。
1.2 以不创建资源库(No Repository)的方式登陆,会把生成的transformation保存到相应的文件,即以文件方式管理。
以下都是在不创建资源库下的说明!以Sybase作为数据库!2 . 创建连接例如3 . 基本功能3.1 以文本文件作为数据源,以表的方式保存(文本文件中内容为中文时,相应存入到表中的记录为乱码,存入到文件中时不存在中文乱码问题)双击Text file input先选择要作为数据源的文本文件,再点击Add,点面板中Content,去掉Header复选框,点面板中Fields,点Get fields为文本文件设置列,如图1,双击Table output,选择Connection,输入Target table,点SQL以生成sql语句,再Execute,如图2图1图23.2以文本文件作为数据源,以文件的方式保存设置数据源操作与3.1类似,双击Text file output以设置文本文件输出格式,可以点面板中Content列来设置,可去除Separator,Enclosure中内容来维持与源文本文件格式一致,如图3图33.3以Excel文件作为数据源,以表的方式保存(当excel文件中有内容为中文时,相应存入到表中的记录内容为乱码)双击Excel Input选择要作为数据源的excel文件并将它Add,点面板中Sheets----Get sheetname(s)…,将相应的sheet加入,如图4;点面板中Fields----Get fields from header row…以得到相应表中的字段,如图5图4图53.4分别以2个表中的数据作为数据源,并且过滤掉重复的记录,再以表的方式保存(2个作为数据源的表中的字段必须一致)双击Unique rows,点击Get以得到上一Step得到的字段,可以对字段进行筛选,如图6图63.5以表的数据作为数据源,根据条件过滤掉记录,再以表的方式保存双击Filter rows,可以双击<field>选择相应字段,双击<value>可以为字段赋值,双击”+”可以连接下一个条件图73.6以表的数据作为数据源,根据条件过滤掉字段,再以表的方式保存双击Select values,点击Get fields to select一得到上一个Step中的所有字段并且筛选字段,如图8图83.7以表的数据作为数据源,根据条件将数据存入到目标表当条件全部相等只作更新,否则将往表中插入数据,如图9图9只做更新。
目录Kettle中元素介绍 (2)变量 (4)转换 (5)转换连接颜色 (6)步骤(右键属性) (6)文本文件输入 (7)表输入 (8)获取系统信息 (8)生成记录 (9)Cube输入 (10)Xbase输入 (10)Excel输入 (10)XML输入 (10)获取文件名 (10)获取文件行数 (10)文本文件输出 (11)表输出 (11)插入/更新 (12)更新(可以用插入/更新替代) (12)删除 (12)序列化到文件(以前是Cube output) (12)XML输出 (12)Excel输出 (13)Access输出 (13)数据库查询(Database lookup) (13)流查询 (13)调用数据库存储过程 (14)HTTP客户端 (14)字段选择 (14)过滤记录 (15)排序记录 (15)添加序列 (15)空操作(什么也不做) (15)行转列(Row Normaliser) (16)拆分字段 (17)去除重复记录 (17)分组(Statistics) (17)设置为空值(Null if) (18)计算器 (18)增加XML(Add XML) (18)增加常量 (18)行转列(Row Denormaliser) (19)行扁平化 (19)值映射 (20)被冻结的步骤(Blocking Step) (20)记录关联(笛卡尔输出) (21)数据库连接 (21)合并记录 (21)排序合并(Sorted Merge) (22)Merge Join(合并连接) (22)Java Script值(Modified Java Script Value) (23)执行SQL语句 (23)Execute row SQL script (24)维度更新/查询 (25)联合更新查询 (25)映射(子转换) (26)从结果获取记录 (27)复制记录到结果(字符串) (27)Set Variables(设置变量) (27)Get Variables(获取变量) (28)Get files from result(从以前的结果获取文件) (28)Set files in result (28)Injector(记录注射器) (29)Socket reader(套接字读入器) (29)套接字输写器(Socket writer) (30)聚合记录 (30)流XML输入(属sax解析,和Get data from xml功能相同) (30)Abort(中止) (31)Oracle Bulk Loader(Oracle 批量装载) (31)任务设置(Job Settings)未找到 (33)任务条目(Job Entries)未找到 (33)Start (33)附录1 : (36)JS函数 (36)资源库:转换和job的保存地点1、kettle 有两种方式连接资源库,一种是纯数据库式,所有的转换全部都保存在一个数据库中;另外一种连接方式是使用文本文件,也就是xml 文件,在做完任何转换之后,我们都可以把转换或者Job 变成xml 文件输出。
【一】Kettle零基础从入门到实践(实现kettle循环自增,超详细,一步一步)一、本文主要处理的几个方面问题(可以根据自己需求选择需要用到的内容查看):1、Kettle循环的使用;2、Kettle从MySQL读输入数据控件的使用;3、Kettle导出Excel控件的使用;4、时间日期的循环自增;二、涉及到的Kettle控件:1、设置变量控件:用于实现设置循环的起始、终止时间;2、检验字段的值控件:用于判断循环的条件,决定循环是否继续进行,还是退出循环;3、转换控件:用于业务数据的“转换”操作处理,比如查询数据并导出excel,以及时间自增的实现;4、获得变量控件:用于获取作业中其他控件传来的变量;5、增加序列控件:用于控制自增的步长,以及自增的终点;6、计算器控件:用于把从“增加序列”控件获取来的步长及终点,做计算,得到自增后的数值或日期等等;7、设置环境变量控件:用于设置变量,这里用来把自增后的值重新赋值给对应的变量;8、表输入控件:用于把MySQL数据库里的数据读出来;9、Microsoft Excel输出控件:用于把得到的数据导入到Excel存储;三、正式开始写Kettle程序!第一部分:主作业的设计及实现:1、梳理通自己需要实现的作业的整个流程:如下图所示,首先新建一个“作业”,根据自己的需求,把需要用到的组件拉出来(不知道自己需要用什么组件可以把鼠标悬停看看介绍,或者拉一个出来写demo遛一遛,再或者直接百度自己的需求,看别人用什么组件实现),然后按照需要执行的顺序,连接在一起(连接操作:按住shift键,然后鼠标从头组件按住,拉向要指向的组件即可),组件的名字都是可以自己定义的,如下图,根据自己实现的功能,给组件定义一个显而易懂的名字即可。
注:每一个Hops即连接控件之间的连线,点击他们的时候都可以使之”生效“、”失效“,或者改变它的状态,如”绿色的对勾“、”红色的叉“。
2、起始终止时间设置(设置变量控件):设置的起始时间为整个循环的起点,终止时间为整个循环的终点,根据自己需要定义值或者变量即可。