2016Kettle基本知识培训
史上最强 Kettle 培训教程资料
表输入
功能描述:从数据库中按条件查找表的数据 注意事项:
可以使用变量替换的方式进行查询,请将“替换sql语句里的变量”勾选上 可以使用上一步结果中赋予值,请将“从步骤插入数据”选择上一步的名称 测试过程中发现如果上一个步骤设置的变量,在table input里面获取不到,
变量设置必须作为一个单独的转换先执行一次,然后才能获取到这个变量
例二:导出数据到文本文件
步骤: ⑥ 鼠标双击【文本文件输出】控件,弹出窗口编辑,如下图:
例二:导出数据到文本文件
步骤: ⑦ 鼠标点击左上角的图标 执行,如下图:
例三:表对表数据转换
• 新建一个转换:文件->新建建一个作业:文件->新建->作业 • 作业可以调用作业,这样方便流程控制
(2)创建作业 将已经创建好的转换和相关的作业组件串联起来, 形成一个整体的任务。
Kettle 的执行顺序
• 作业:分串行执行和并行执行,串行执行是先执行完其中一条线再执 行另一条线,并行是两条线同时执行,同一条线上的两个步聚会先执 行前面的再执行后面的。每个步骤执行结果分两种:true(成 功)/false(失败),根据返回结果可以控制流程走向。
作业的常用环节介绍:
Kettle主界面
说明:A: A:Kettle所使用到的菜单栏。 B:在使用Kettle时所涉及使用到的对象。 C:Kettle中所有的组件。 D:根据选择(B)或者(C)显示相应的结果。 E:Kettle设计界面。
Kettle界面-job
Kettle界面-transformation
47
例五:作业调用转换
• 作业也可以调用转换
48
作业的一个例子
指定job执行规则:是否重 复执行、设置重复执行的 间隔时间等
Kettle入门教程
Kettle入门教程最近做的项目用到了ETL工具Kettle,这个工具相当好用,可以将各种类型数据作为数据流,经过处理后再生成各种类型的数据。
正如其名“水壶”,将各个地方的水倒进水壶里,再用水壶倒入不同的容器。
不过一来初学乍用,二来对此任务不是很感兴趣,研究的不是很深入,可能是以一种不科学的方法使用的,但观教程,常用的内容似乎也涉及到了,并且Y大说过,要善于总结,于是有了这篇,作为入门说明吧。
一、下载与安装官网地址大概700~800M,下载好解压缩即可。
当然,要求JDK环境(似乎有自带)二、任务(.kjb)与转换(.ktr)Kettle工具的主界面-作业简单地说,一个转换就是一个ETL的过程,而作业则是多个转换、作业的集合,在作业中可以对转换或作业进行调度、定时任务等(据说定时不好用,可以通过其他方式,比如linux的crontab命令,不过实际使用中,这个指令也不大好使,有待查看日志探明原因。
)我在实际过程中,写的流程不是很复杂,当数据抽取需要多步骤时,分成多个转换,在集合到一个作业里顺序摆放,然后执行即可,不放到作业里的话,要对多个转换依次执行命令,比较麻烦。
三、煎锅、勺子、厨房是不是莫名其妙,以为走错了片场?然而这是几个重要的工具名称。
1)勺子-Spoon.bat/spoon.sh图形界面工具,就是启动上图主界面的命令行。
这个界面应该是JavaFX做的。
这个用来在有图形界面的系统下写任务(如何通过命令行写我不知道,并且我怀疑没有这个可能……),如Windows,写好后,也可以通过该工具进行执行,调试。
这个工具最大的问题是启动很慢,并且如果修改了数据库连接的配置,只有重新启动才能生效了。
这时候就体现了命令行的优越性。
转换窗口简单的转换示例左边有很多控件可供选择,上图展示了我在使用中经常用到的几个控件。
•执行SQL脚本:可以直接在控件里写SQL,并指定执行的库。
•表输入:通过查询数据库的表来获取输入数据流。
Kettle使用培训文档
KETTLE使用-TRANSFORMATION
菜单介绍
Core Objects菜单列出的是 transformation中可以调用的环节列 表,可以通过鼠标拖动的方式对环 节进行添加。
Input:输入环节 Output:输出环节 Lookup:查询环节 Transform:转化环节 Joins:连接环节 Scripting:脚本环节
KETTLE使用案例
KETTLE使用案例
KETTLE使用案例
数据库连接选择数据仓库的数据库,目标表选 择对应的infortaotal表,在查询关键字里,表 字段写name(表示仓库表里的字段),流里的字 段1里写入NAME(即上一个步骤输入的内容里 的NAME)。比较符用”=”号。点击Edit mapping 按钮,将表字段,与流利的字段进行对应,即 流里字段里的值输入到表里的哪个字段里去。
会根据查询条件中字段进行判断更新根据处理结果对数据库进行更新若需要更新的数据在数据库表中无记录则会报错停止删除根据处理结果对数据库记录进行删除若需要删除的数据在数据库表中无记录则会报错停止lookup数据库查询根据设定的查询条件对目标表进行查询返回需要的结果字段流查询将目标表读取到内存通过查询条件对内存中数据集进行查询调用db存储过程调用数据库存储过程transform字段选择选择需要的字段过滤掉不要的字段也可做数据库字段对应过滤记录根据条件对记录进行分类排序记录将数据根据某以条件进行排序空操作无操作增加常量增加需要的常量字段scriptingmodifiedjavascriptvalue扩展功能编写javascript脚本对数据进行相应处理mapping映射子转换数据映射jobsatvariables设置环境变量getvariables获取环境变量kettlekettle使用使用jobjob菜单介绍maintree菜单列出的是一个job中基本的属性可以通过各个节点来查看
Kettle入门.docx
目录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简介:Kettle是使用Java语言开发的一个开源ETL工具(Extract--Transform--Loading),完成数据的抽取、转换、加载工作。
Kettle的意思是“水壶”,把各种各样的数据倒进水壶中,经过转换、处理,以我们所需的格式输出对我们有价值的信息。
问题:为什么要用kettle?需求:不同的数据库(同一种类型但实例不同的数据库,或者不同类型的数据库)之间、不同的数据存储形式(数据库、文本文件)之间需要协同工作,计算、处理、转换成我们需要的数据。
实际应用场景:对帐系统需要读取ATM的交易流水文件到Oracle数据库中并进行统计。
不使用kettle的情况:专门编写程序(Java或C)导入到数据库中,在Oracle中编写存储过程进行批量统计。
使用kettle的情况:通过“文本文件输入”step,指定分隔符,即可完成导入,无需编写程序;使用kettle中的各种对象可以完成统计功能,不需要编写存储过程。
两种情况对比:情况一:需要编写专门的导入程序,不具备通用性。
存储过程在不同类型的数据库中语法不同,也不具备通用性。
但不需要掌握kettle。
情况二:不需要编写专门的导入程序,不同的文件格式只需要修改“文本文件输入”step中的对应参数即可。
不需要针对不同的数据库编写不同版本的存储过程,只需要使用标准SQL 就可以具备通用性。
需要掌握kettle。
好处:跨数据库、跨平台,减少我们的工作量。
Kettle中有两种类型的对象,分别对应两种类型的文件。
一种是Transformation(以后简称Trans),即转换;一种是Job,即工作。
Trans完成具体的任务,Job用于控制转换之间的执行顺序。
第一部分:与数据库打交道1创建数据库连接<1>新建一个Transformation,在“DB连接”下创建一个“数据库连接”,如下图所示:<2>如果创建kettle不支持的数据库的连接,ConnectionType选择Generic database。
Pentaho Data Integration 完全自学手册.2016.12.11
Pentaho Data Integration 完全自学手册(孟菲斯著)文档目录文档目录 (2)更新记录 (17)第一章.KETTLE 基础介绍 (18)1.1.核心组件 (18)1.2.组成部分 (18)1.3.概念模型 (19)1.3.1.Transformation(转换) (19)1.3.2.Steps(步骤) (20)1.3.3.Hops(节点连接) (20)1.3.4.Jobs(工作) (20)1.3.5.Variable(变量) (21)1.3.5.1.设置环境变量 (21)1.3.5.2.设置变量 (21)1.4.查看版本 (22)1.5.选项设置 (23)第二章.KETTLE 环境搭建 (25)2.1.单机部署 (25)2.1.1.下载kettle (25)2.1.2.安装kettle (25)2.1.3.运行Spoon (25)2.2.集群部署 (26)1. Carte简介 (26)2. Carte部署配置 (26)2.1 启动方法 (26)2.2 启动配置 (26)2.3 Carte xml文件配置详解 (27)2.3.1 slaveserver节点 (28)2.3.2 masters节点 (28)2.3.3 report_to_masters节点 (28)2.3.4 max_log_lines节点 (28)2.3.5 max_log_timeout_minutes节点 (28)2.3.6 object_timeout_minutes节点 (29)2.3.7 (*) repository节点 (29)3. Carte集群 (29)3.1 普通集群 (30)3.2 动态集群 (30)2.3.运行方式 (30)2.3.1.转换执行器Pan (30)2.3.1.2.Pan 实例讲解:Windows (31)2.3.1.3.Pan 实例讲解:Linux (31)2.3.2.任务执行器Kitchen (32)2.3.2.1.Kitchen 参数介绍 (32)2.3.2.2.Kitchen 实例讲解:Windows (33)2.3.2.3.Kitchen 实例讲解:Linux (34)2.4.定时任务 (35)2.4.1.Windows (35)2.4.2.Linux (35)第三章.KETTLE 基本功能 (40)3.1.新建转换 (40)3.1.1.方法1 (40)3.1.2.方法2 (40)3.1.3.方法3 (41)3.1.4.主对象树 (41)3.1.5.核心对象 (42)3.1.6.新建数据库连接 (42)3.2.转换实例 (43)3.2.1.转换实例1 (43)3.2.2.转换实例2 (43)3.3.新建作业 (44)3.3.1.方法1 (44)3.3.2.方法2 (44)3.3.3.方法3 (45)3.3.4.主对象树 (45)3.3.5.核心对象 (46)3.4.作业实例 (46)3.4.1.作业实例1 (46)3.4.2.作业实例2 (46)第四章.KETTLE 设计环境 (46)4.1.T RANSFORMATION:转换步骤(24-228) (46)4.1.1.Input:输入(38) (46)4.1.1.1.Csv file input (46)4.1.1.1.1.功能描述 (47)4.1.1.1.2.操作步骤 (47)4.1.1.1.3.实例讲解 (48)4.1.1.2.DataGrid (48)4.1.1.3.De-serialize from file:文件反序列化 (48)4.1.1.4.ESRI Shapefile Reader (48)4.1.1.5.Email messages input (48)4.1.1.6.Fixed file input (48)4.1.1.7.GZIP CSV Input (48)4.1.1.9.Generate random credit card numbers (48)4.1.1.10.Generate random value (49)4.1.1.11.Get File Names (49)4.1.1.12.Get Files Rows Count (49)4.1.1.13.Get SubFolder names (49)4.1.1.14.Get System Info:获取系统信息 (49)4.1.1.14.1.功能描述 (50)4.1.1.14.2.操作步骤 (51)4.1.1.14.3.实例讲解 (52)4.1.1.15.Get data from XML (53)4.1.1.16.Get repository names (53)4.1.1.17.Get table names (53)4.1.1.18.Google Analytics (53)4.1.1.19.HL7 Input (53)4.1.1.20.JSON Input (53)4.1.1.21.LDAP Input (53)4.1.1.22.LDIF Input (54)4.1.1.23.Load file content in memory (54)4.1.1.24.Microsoft Access input (54)4.1.1.25.Microsoft Excel Input (54)4.1.1.25.1.功能描述 (54)4.1.1.25.2.操作步骤 (54)4.1.1.25.2.1.指定文件名 (55)4.1.1.25.2.2.指定内容 (55)4.1.1.25.2.3.字段 (55)4.1.1.25.2.4.错误处理 (55)4.1.1.25.2.5.其他输出字段 (55)4.1.1.25.3.实例讲解 (55)4.1.1.26.Mondrian Input (55)4.1.1.27.OLAP Input (56)4.1.1.28.Property Input (56)4.1.1.29.RSS Input (56)4.1.1.30.S3 CSV Input (56)4.1.1.31.SAP Input (56)4.1.1.32.SAS Input (56)4.1.1.33.SalesForce Input (56)4.1.1.34.Table input:表输入 (56)4.1.1.34.1.功能描述 (56)4.1.1.34.2.操作步骤 (57)4.1.1.34.3.实例讲解 (58)4.1.1.35.Text file input:文本文件输入 (58)4.1.1.35.1.功能描述 (58)4.1.1.35.2.操作步骤 (58)4.1.1.35.2.2.从先前的步骤中接受文件名 (59)4.1.1.35.2.3.内容指定 (59)4.1.1.35.2.4.错误处理 (62)4.1.1.35.2.5.过滤 (63)4.1.1.35.2.6.字段 (64)4.1.1.35.2.7.其他输出字段 (65)4.1.1.35.3.格式化 (65)4.1.1.35.3.1.Number格式化 (65)4.1.1.35.3.2.Date格式化 (66)4.1.1.35.3.3.其它 (66)4.1.1.35.4.实例讲解 (67)4.1.1.36.XBase input:XBase输入 (67)4.1.1.36.1.功能描述 (67)4.1.1.37.XML Input Stream(StAX) (67)4.1.1.37.1.功能描述 (67)4.1.1.38.Yaml Input (69)4.1.2.Output:输出(22) (69)4.1.2.1.Automatic Documentation Output (69)4.1.2.2.Delete:删除 (69)4.1.2.2.1.功能描述 (69)4.1.2.2.2.操作步骤 (69)4.1.2.3.Insert / Update:插入/更新 (70)4.1.2.3.1.功能描述 (70)4.1.2.3.2.操作步骤 (71)4.1.2.4.JSON Output (72)4.1.2.5.LDAP Output (72)4.1.2.6.Mircosoft Access Output (72)4.1.2.7.Mircosoft Excel Output:Excel输出 (72)4.1.2.7.1.功能描述 (72)4.1.2.7.2.操作步骤 (72)4.1.2.8.Pentaho Reporting Output (75)4.1.2.9.Properties Output (75)4.1.2.10.RSS Output (75)4.1.2.11.S3 File Output (75)4.1.2.12.SQL File Output (75)4.1.2.13.Saleforce Delete (75)4.1.2.14.Saleforce Insert (75)4.1.2.15.Saleforce Update (75)4.1.2.16.Saleforce Upsert (75)4.1.2.17.Serialize to file (75)4.1.2.18.Synchronize after merge (76)4.1.2.19.Table output (76)4.1.2.19.1.功能描述 (76)4.1.2.20.Text file output:文本文件输出 (79)4.1.2.20.1.功能描述 (79)4.1.2.20.2.操作步骤 (80)4.1.2.21.Update:更新 (81)4.1.2.21.1.功能描述 (81)4.1.2.21.2.操作步骤 (82)4.1.2.22.XML Output (83)4.1.3.Transform:转换(26) (84)4.1.3.1.Add XML (84)4.1.3.2.Add a checksum (84)4.1.3.3.Add constants:增加常量 (84)4.1.3.3.1.功能描述 (84)4.1.3.3.2.操作步骤 (84)4.1.3.4.Add sequence (85)4.1.3.4.1.功能描述 (85)4.1.3.4.2.操作步骤 (85)4.1.3.5.Add value fields changing seqence (86)4.1.3.6.!Calculator:计算器 (86)4.1.3.6.1.功能描述 (87)4.1.3.6.2.操作步骤 (88)4.1.3.7.Closure Generator (89)4.1.3.8.Concat Fields (89)4.1.3.9.Get ID From slave server (89)4.1.3.10.Number range (89)4.1.3.11.Replace in string:字符串替换 (89)4.1.3.11.1.功能描述 (89)4.1.3.11.2.操作步骤 (89)4.1.3.12.!Row Normaliser:行转列 (90)4.1.3.12.1.功能描述 (90)4.1.3.12.2.操作步骤 (91)4.1.3.13.Row denormaliser:列转行 (92)4.1.3.13.1.功能描述 (92)4.1.3.13.2.操作步骤 (92)4.1.3.14.!Row flattener:行扁平化 (92)4.1.3.14.1.功能描述 (93)4.1.3.14.2.操作步骤 (93)4.1.3.15.!Select values:字段选择 (94)4.1.3.15.1.功能描述 (94)4.1.3.15.2.操作步骤 (95)4.1.3.16.Set field value (96)4.1.3.17.Set field value to a constant (96)4.1.3.18.Sort rows (96)4.1.3.18.1.功能描述 (96)4.1.3.19.Split Fields:拆分字段 (97)4.1.3.19.1.功能描述 (97)4.1.3.19.2.操作步骤 (97)4.1.3.20.Split Fields to rows (99)4.1.3.21.String operations (99)4.1.3.22.String cut:裁剪字符串 (99)4.1.3.22.1.功能描述 (99)4.1.3.22.2.操作步骤 (99)4.1.3.23.Unique rows:去除重复记录 (100)4.1.3.23.1.功能描述 (100)4.1.3.23.2.操作步骤 (100)4.1.3.25.!Value Mapper:值映射 (101)4.1.3.25.1.功能描述 (101)4.1.3.25.2.操作步骤 (101)4.1.3.26.XSL Transformation (103)4.1.4.Utility(15) (103)4.1.4.1.Change file encoding (103)4.1.4.2.Clone row (103)4.1.4.3.Delay row (103)4.1.4.4.Edit to xml (103)4.1.4.5.Execute a process (103)4.1.4.6.If field value is null (103)4.1.4.7.Mail (103)4.1.4.8.Metadata structure of stream (103)4.1.4.9.Null if:设置为空值 (103)4.1.4.9.1.功能描述 (103)4.1.4.10.Process files (104)4.1.4.11.Run SSH commands (104)4.1.4.12.Send message to Syslog (104)4.1.4.13.Table Compare (104)4.1.4.14.Write to log (104)4.1.4.15.Zip file (104)4.1.4.15.1.功能描述 (104)4.1.4.15.2.操作步骤 (104)4.1.5.Flow(16) (106)4.1.5.1.Abort:中止 (106)4.1.5.1.1.功能描述 (106)4.1.5.2.Annotate Stream (106)4.1.5.3.Append streams:追加流 (106)4.1.5.3.1.功能描述 (106)4.1.5.3.2.操作步骤 (106)4.1.5.4.Block this step unitil steps finish (107)4.1.5.5.Blocking Step:阻塞数据 (107)4.1.5.5.2.操作步骤 (107)4.1.5.6.Detect empty stream (108)4.1.5.7.Dummy (do nothing):空操作(什么也不做) (108)4.1.5.7.1.功能描述 (108)4.1.5.8.ETL Metadata Injection (109)4.1.5.9.!Filter rows: 过滤记录(过滤行) (109)4.1.5.9.1.功能描述 (109)4.1.5.9.2.操作步骤 (109)4.1.5.10.Identify last row in a stream (110)4.1.5.11.Java fileter (111)4.1.5.12.Job Executor (111)4.1.5.13.Prioritize streams (111)4.1.5.14.Single Threader (111)4.1.5.15.Switch / Case (111)4.1.5.15.1.功能描述 (111)4.1.5.15.2.操作步骤 (111)4.1.5.16.Transformation Executor (113)4.1.6.Scripting(9) (113)4.1.6.1.!Execute SQL script:执行SQL脚本 (113)4.1.6.1.1.功能描述 (113)4.1.6.1.2.操作步骤 (114)4.1.6.1.3.实例讲解 (115)4.1.6.2.Execute row SQL script:执行SQL脚本(字段流替换) (116)4.1.6.2.1.功能描述 (116)4.1.6.2.2.操作步骤 (116)4.1.6.3.Formula (117)4.1.6.4.!Modified Java Script Value (118)1)Transformation scripts (118)2)Transformation constants (118)3)Transformation functions (118)1)过滤Null字段 (119)2)字符串截取 (119)3)过滤记录行,控制转换流程 (119)4)使用java类库 (119)4.1.6.4.1.实例讲解 (124)4.1.6.5.Regex Evaluation (124)4.1.6.6.Rules Accumulator (124)4.1.6.7.Rules Executor (124)er Defined Java Class (124)er Defined Java Expression (124)4.1.7.BA Server(3) (125)4.1.7.1.Call endpoint (125)4.1.7.2.Get session varables (125)4.1.8.Lookup(15) (125)4.1.8.1.!Call DB Procedure:调用DB存储过程 (125)4.1.8.1.1.功能描述 (125)4.1.8.1.2.操作步骤 (125)4.1.8.2.Check if a column exists (127)4.1.8.3.Check if file is locked (127)4.1.8.4.Check if webservice is available (127)4.1.8.5.!Database join:数据库连接 (127)4.1.8.5.1.功能描述 (127)4.1.8.5.2.操作步骤 (127)4.1.8.6.!Database lookup:数据库查询 (128)4.1.8.6.1.功能描述 (129)4.1.8.6.2.操作步骤 (129)4.1.8.7.Dynamic SQL row (131)4.1.8.8.File exists (131)4.1.8.9.Fuzzy match (131)4.1.8.10.HTTP client (131)4.1.8.10.1.功能描述 (131)4.1.8.10.2.操作步骤 (131)4.1.8.11.HTTP Post (132)4.1.8.12.REST Client (132)4.1.8.13.Stream lookup (132)4.1.8.14.Table exists (132)4.1.8.15.Web services lookup (132)4.1.9.Joins(6) (133)4.1.9.1.!Join Rows(Cartesian product):记录关联(笛卡尔输出) (133)4.1.9.1.1.功能描述 (133)4.1.9.2.!Merge join (133)4.1.9.2.1.功能描述 (133)4.1.9.3.!Merge Rows (diff) (134)4.1.9.4.Multiway Merge Join (134)4.1.9.5.Sorted Merge (134)4.1.9.6.XML Join (134)4.1.10.Data Warehouse(2) (135)4.1.10.1.!Combination lookup/update (135)4.1.10.2.!Dimension lookup/update (135)4.1.11.Validation(4) (136)4.1.11.1.Credit card validator (136)4.1.11.2.Data Validator (136)4.1.11.3.Mail Validator (136)4.1.11.4.XSD Validator (136)4.1.12.!Statistics:统计(7) (136)4.1.12.1.Analytic Query (136)4.1.12.2.1.功能描述 (136)4.1.12.2.2.操作步骤 (136)4.1.12.3.Memory Group by (138)4.1.12.4.Output steps metrics (138)4.1.12.5.Reservoir Sampling (138)4.1.12.6.Sample rows (138)4.1.12.7.Univariate Statistics (138)4.1.13.Big Data(13) (138)4.1.13.1.Avro Input (138)4.1.13.2.Cassandra Input (138)4.1.13.3.Cassandra output (138)4.1.13.4.CouchDb Input (138)4.1.13.5.HBase Input (138)4.1.13.6.HBase Row Decoder (138)4.1.13.7.Hadoop File Input (138)4.1.13.8.Hadoop File Output (138)4.1.13.9.MapReduce Input (138)4.1.13.10.MapReduce output (139)4.1.13.11.MongoDB Input (139)4.1.13.12.MongoDB output (139)4.1.13.13.SSTable Output (139)4.1.14.Agile(2) (139)4.1.14.1.MonetDB Agile Mart (139)4.1.14.2.Table Agile mart (139)4.1.15.Cryptography(4) (139)4.1.15.1.PGP Decrypt stream (139)4.1.15.2.PGP Encrypt stream (139)4.1.15.3.Secret key generator (139)4.1.15.4.Symmetric Cryptography (139)4.1.16.Palo(4) (139)4.1.16.1.Palo Cell Input (139)4.1.16.2.Palo Cell Output (139)4.1.16.3.Palo Dim Input (140)4.1.16.4.Palo Dim Output (140)4.1.17.Open ERP(3) (140)4.1.17.1.OpenERP Object Delete (140)4.1.17.2.OpenERP Object Input (140)4.1.17.3.OpenERP Object OUtput (140)4.1.18.Job:作业(6) (140)4.1.18.1.Copy rows to result:复制记录到结果 (140)4.1.18.1.1.功能描述 (140)4.1.18.2.Get Variables:获取变量 (140)4.1.18.2.1.功能描述 (140)4.1.18.3.Get files from result:从结果获取文件 (141)4.1.18.3.1.功能描述 (141)4.1.18.3.2.操作步骤 (142)4.1.18.4.Get rows from result:从结果获取记录 (142)4.1.18.4.1.功能描述 (142)4.1.18.5.Set Variables:设置变量 (142)4.1.18.5.1.功能描述 (143)4.1.18.5.2.操作步骤 (143)4.1.18.6.Set files in result:复制文件到结果 (143)4.1.18.6.1.功能描述 (143)4.1.18.6.2.操作步骤 (143)4.1.19.!Mapping(4) (144)4.1.19.1.Mapping(sub-transformation) (144)4.1.19.2.Mapping input specification (144)4.1.19.3.Mapping output specitication (144)4.1.19.4.Simple Mapping(sub-transformation) (144)4.1.20.Bulk loading(11) (145)4.1.20.1.ElasticSearch Bulk Insert (145)4.1.20.2.Greenplum load (145)bright loader (145)4.1.20.4.Ingres VectorWise Bulk Loader (145)4.1.20.5.MonetDB Bulk Loader (145)4.1.20.6.MySQL Bulk loader (145)4.1.20.7.!Oracle Bulk loader (145)4.1.20.7.1.功能描述 (145)4.1.20.8.PostgresSQL Bulk loader (146)4.1.20.9.Teradata Fastload Bulk Loader (146)4.1.20.10.Teradata TPT Bulk loader (146)4.1.20.11.Vertica Bulk loader (146)4.1.21.Inline(3) (146)4.1.21.1.Injector: 记录注射器 (146)4.1.21.2.Socket reader: 套接字读入器 (147)4.1.21.2.1.功能描述 (147)4.1.21.3.Socket writer (147)4.1.22.Experimental(2) (148)4.1.22.1.SFTP Put (148)4.1.22.2.Script (148)4.1.23.Deprecated(4) (148)4.1.23.1.Example Step (148)4.1.23.2.Greenplum Bulk loader (148)4.1.23.3.LicidDB Streaming Loader (148)4.1.23.4.Old Text file input (148)4.1.24.History(9) (148)4.1.24.2.Table input (148)4.1.24.3.Text file output (148)4.1.24.4.Table output (148)4.1.24.5.Moding java Script Value (148)4.1.24.6.Add sequence (148)4.1.24.7.Generate Rows (149)4.1.24.8.Get System Info (149)4.1.24.9.Sort rows:行排序 (149)4.1.24.9.1.功能描述 (149)4.2.JOB:作业步骤(15-92) (149)4.2.1.General:通用(6) (149)4.2.1.1.Start:开始 (149)4.2.1.1.1.功能描述 (149)4.2.1.1.2.操作步骤 (150)4.2.1.2.Dummy:空操作 (150)4.2.1.2.1.功能描述 (150)4.2.1.3.OK (151)4.2.1.4.Job:作业 (151)4.2.1.4.1.功能描述 (151)4.2.1.4.2.操作步骤 (151)4.2.1.5.Set variables:设置变量 (152)4.2.1.5.1.功能描述 (152)4.2.1.6.Transformation (152)4.2.1.6.1.功能描述 (152)4.2.1.6.2.操作步骤 (153)4.2.1.7.Success (154)4.2.2.Mail:邮件(3) (154)4.2.2.1.Mail validator (154)4.2.2.2.Mail:发送邮件 (154)4.2.2.2.1.功能描述 (154)4.2.2.2.2.操作步骤 (154)4.2.2.3.Get mails from POP:接收邮件 (156)4.2.2.3.1.功能描述 (156)4.2.2.3.2.操作步骤 (156)4.2.3.File management(19) (158)4.2.3.1.Process result filenames (158)4.2.3.2.File Compare:比较文件 (158)4.2.3.2.1.功能描述 (158)4.2.3.2.2.操作步骤 (158)4.2.3.3.Create a folder:创建文件夹 (159)4.2.3.3.1.功能描述 (159)4.2.3.3.2.操作步骤 (159)4.2.3.4.Unzip file:解压ZIP文件 (159)4.2.3.4.2.操作步骤 (160)4.2.3.5.Delete file:删除文件 (161)4.2.3.5.1.功能描述 (161)4.2.3.5.2.操作步骤 (161)4.2.3.6.HTTP (162)4.2.3.7.Write to file (162)4.2.3.7.1.功能描述 (162)4.2.3.7.2.操作步骤 (162)4.2.3.8.Convert file between Windows and Unix (163)pare folders:比较文件夹 (163)4.2.3.9.1.功能描述 (163)4.2.3.9.2.操作步骤 (163)4.2.3.10.Zip file:压缩文件 (164)4.2.3.10.1.功能描述 (164)4.2.3.11.Copy Files (165)4.2.3.11.1.功能描述 (165)4.2.3.11.2.操作步骤 (165)4.2.3.12.Add filenames to result添加文件名到结果 (166)4.2.3.12.1.功能描述 (166)4.2.3.12.2.操作步骤 (166)4.2.3.13.Delete folders:删除文件夹 (167)4.2.3.13.1.功能描述 (167)4.2.3.13.2.操作步骤 (167)4.2.3.14.Delete filenames from result:在结果中删除文件名 (168)4.2.3.14.1.功能描述 (168)4.2.3.14.2.操作步骤 (168)4.2.3.15.Delete files:删除多个文件 (169)4.2.3.15.1.功能描述 (169)4.2.3.15.2.操作步骤 (169)4.2.3.16.Wait for file:等待文件 (170)4.2.3.16.1.功能描述 (170)4.2.3.16.2.操作步骤 (170)4.2.3.17.Move Files移动文件 (171)4.2.3.17.1.功能描述 (171)4.2.3.17.2.操作步骤 (171)4.2.3.18.Create file:创建文件 (171)4.2.3.18.1.功能描述 (172)4.2.3.18.2.操作步骤 (172)4.2.3.19.Copy or Move result filenames:根据结果复制或移动文件 (172)4.2.3.19.1.功能描述 (172)4.2.3.19.2.操作步骤 (173)4.2.4.Conditions(12) (174)4.2.4.1.Check webservice availability:检查WEB服务是否可用 (174)4.2.4.1.2.操作步骤 (174)4.2.4.2.Check files locked:判断是否有文件被锁定 (175)4.2.4.2.1.功能描述 (175)4.2.4.2.2.操作步骤 (175)4.2.4.3.Colums exist in a table:检查列在表中是否存在 (176)4.2.4.3.1.功能描述 (176)4.2.4.3.2.操作步骤 (176)4.2.4.4.Wait for (177)4.2.4.4.1.功能描述 (177)4.2.4.4.2.操作步骤 (177)4.2.4.5.Evaluate files metrics (177)4.2.4.6.Check Db connections (177)4.2.4.6.1.功能描述 (177)4.2.4.6.2.操作步骤 (178)4.2.4.7.File Exists:文件存在 (178)4.2.4.7.1.功能描述 (178)4.2.4.7.2.操作步骤 (178)4.2.4.8.Evaluate rows number in a table:判断标中行数 (178)4.2.4.8.1.功能描述 (178)4.2.4.8.2.操作步骤 (179)4.2.4.9.Checks if files exist:检查文件是否存在 (180)4.2.4.9.1.功能描述 (180)4.2.4.9.2.操作步骤 (180)4.2.4.10.Check if a folder is empty检查文件夹是否为空 (180)4.2.4.10.1.功能描述 (181)4.2.4.10.2.操作步骤 (181)4.2.4.11.Simple evaluation:简单评估 (181)4.2.4.11.1.功能描述 (181)4.2.4.11.2.操作步骤 (182)4.2.4.12.Table exists:表存在 (182)4.2.4.12.1.功能描述 (183)4.2.4.12.2.操作步骤 (183)4.2.5.Scripting(3) (183)4.2.5.1.Shell (183)4.2.5.1.1.功能描述 (183)4.2.5.1.2.操作步骤 (184)4.2.5.2.SQL (186)4.2.5.2.1.功能描述 (186)4.2.5.2.2.操作步骤 (186)4.2.5.3.JavaScript:Java脚本 (187)4.2.5.3.1.功能描述 (187)4.2.5.3.2.操作步骤 (188)4.2.6.Bulk loading(3) (190)4.2.6.1.BulkLoad form Mysql into file (190)4.2.6.2.BulkLoad into MSSQL (190)4.2.6.3.BulkLoad into Mysql (190)4.2.7.Big Data(10) (190)4.2.7.1.Oozie Job Execcutor (190)4.2.7.2.Hadoop Job Executor (190)4.2.7.3.Pig Script Executor (190)4.2.7.4.Amazon Hive Job Executor (190)4.2.7.5.Spark Submit (190)4.2.7.6.Sqoop Export (190)4.2.7.7.Sqoop Import (190)4.2.7.8.Pentaho Mapreduce (190)4.2.7.9.Hadoop Copy Files (190)4.2.7.10.Amazon EMR Job Executor (190)4.2.8.Modeling(2) (191)4.2.8.1.Build Model (191)4.2.8.2.Publish Model (191)4.2.9.XML(4) (191)4.2.9.1.XSD Validator (191)4.2.9.2.Check if XML file is well formed (191)4.2.9.3.XSL Transformation (191)4.2.9.4.DTD Validator (191)4.2.10.Utility(13) (191)4.2.10.1.Truncate tables (191)4.2.10.2.Display Msgbox Info (191)4.2.10.3.Wait for SQL (191)4.2.10.4.Abort job (192)4.2.10.5.Talend Job Execution (192)4.2.10.6.HL7 MLLP Acknowledge (192)4.2.10.7.Send Nagios passive check (192)4.2.10.8.Ping a host (192)4.2.10.9.Write To Log (192)4.2.10.10.Telnet a host (193)4.2.10.11.HL7 MLLP Input (193)4.2.10.12.Send information using Syslog (193)4.2.10.13.Send SNMP trap (193)4.2.11.Reposotory(2) (194)4.2.11.1.Export repository to XML file (194)4.2.11.2.Check if connected to repository (194)4.2.12.File transfer(8) (194)4.2.12.1.Get a file with FTP (194)4.2.12.1.1.功能描述 (195)4.2.12.1.2.操作步骤 (195)4.2.12.2.Put a file with FTP (197)4.2.12.2.1.功能描述 (198)4.2.12.2.2.操作步骤 (198)4.2.12.4.FTP Delete:删除FTP文件 (199)4.2.12.4.1.功能描述 (199)4.2.12.4.2.操作步骤 (199)4.2.12.5.Get a file with SFTP (199)4.2.12.5.1.功能描述 (199)4.2.12.5.2.操作步骤 (200)4.2.12.6.Put a file with SFTP (200)4.2.12.6.1.功能描述 (201)4.2.12.6.2.操作步骤 (201)4.2.12.7.Upload files to FTPS (201)4.2.13.File encryption(3) (202)4.2.13.1.Verify file signature with PGP (202)4.2.13.2.Decrypt files with PGP (202)4.2.13.3.Encrypt files with PGP (202)4.2.14.Palo(2) (202)4.2.14.1.Palo Cube Delete (202)4.2.14.2.Palo Cube Create (202)4.2.15.Deprecated(2) (202)4.2.15.1.MS Access Bulk Load (202)4.2.15.2.Example Job (202)更新记录第一章.Kettle 基础介绍1.1.核心组件Spoon是构建ETL Jobs和Transformations的工具。
史上最强Kettle培训教程(增加多场景)
史上最强Kettle培训教程一、引言Kettle是一款开源的ETL工具,具有简单易用、功能强大、扩展性强等特点。
本教程旨在帮助读者全面了解Kettle的基础知识、高级应用以及最佳实践,从而掌握这款强大的ETL工具。
二、Kettle简介1.1Kettle概述Kettle是一款基于Java开发的ETL工具,主要用于数据抽取、转换和加载。
它由Pentaho公司开发,并在2006年开源。
Kettle支持多种数据源,如关系型数据库、文本文件、Excel文件等,并且提供了丰富的转换组件,可以满足各种复杂的数据处理需求。
1.2Kettle主要组件Kettle主要包括两个组件:Spoon和Pan。
Spoon是Kettle的图形界面设计工具,用于创建和编辑ETL转换;Pan是Kettle的命令行执行工具,用于执行Spoon中创建的转换。
三、Kettle基础教程2.1环境搭建2.2Spoon界面介绍启动Spoon,看到的是欢迎界面。
“新建”按钮,创建一个转换或作业。
在转换编辑界面,左侧为组件面板,右侧为画布。
在画布上,我们可以通过拖拽组件来创建ETL流程。
2.3创建转换在本节中,我们将学习如何创建一个简单的ETL转换。
从组件面板中拖拽一个“表输入”组件到画布上,双击该组件,设置数据库连接和SQL查询。
然后,拖拽一个“表输出”组件到画布上,双击该组件,设置目标数据库连接和表名。
将“表输入”和“表输出”组件连接起来,保存并运行转换。
2.4执行转换pan.sh-file=/path/to/your/transformation.ktr其中,`/path/to/your/transformation.ktr`为转换文件的路径。
四、Kettle高级教程3.1数据类型转换在ETL过程中,我们经常需要对数据进行类型转换。
Kettle提供了丰富的类型转换组件,如“复制记录”、“字段选择”等。
在本节中,我们将学习如何使用这些组件进行数据类型转换。
史上最强 Kettle 培训教程
Kettle 常用控件
(1)转换控件-主对象-数据路连接:
由于一般在做数据处理时都会涉及到表操作,所以一般需要创 建数据库连接,这是其它操作的前提
Kettle 常用控件
(2)转换控件-核心对象:
Kettle 常用控件
(3)作业控件-核心对象
(4)kettle 内部变量
Kettle 常用控件
(5)常用控件说明
输入控件
生成记录
功能描述:生成一些固定字段的记录
,主要用来模拟一些数据进行测试
注意事项:注意生成行数
自定义常量数据
功能描述:
用来给查询增加常量列 “元数据”页是定义字段
相关信息 “数据”页则是赋予各字
段相应的值
生成随机数
功能描述:生成36位的随机数 注意事项:生成36位的随机数中间有四个“-”,如果用来做32位主
表输入
功能描述:从数据库中按条件查找表的数据 注意事项:
可以使用变量替换的方式进行查询,请将“替换sql语句里的变量”勾选上 可以使用上一步结果中赋予值,请将“从步骤插入数据”选择上一步的名称 测试过程中发现如果上一个步骤设置的变量,在table input里面获取不到,
变量设置必须作为一个单独的转换先执行一次,然后才能获取到这个变量
例一:导入文本文件到数据库
步骤: ⑤ 鼠标双击【文本输入】控件,弹出窗口编辑,如下图:
点击获取字段按钮,可自动获 取字段名称,然后编辑相关属 性,预览记录
例一:导入文本文件到数据库
步骤: ⑥ 鼠标双击【表输出】控件,弹出窗口编辑,如下图:
例一:导入文本文件到数据库
步骤: ⑦ 鼠标点击左上角的图标 执行,如下图:
Steps:一个transformation中应用 到的环节列表
Kettle使用培训文档 PPT课件
类别
环节名称
功能说明
Job entries START
开始
DUMMY
结束
Transformation 引用Transformation流程
Job
引用Job流程
Shell
调用Shell脚本
SQL
执行sql语句
FTP
通过FTP下载
Table exists
检查目标表是否存在,返回布尔值
File exists
Input:输入环节 Output:输出环节 Lookup:查询环节 Transform:转化环节 Joins:连接环节 Scripting:脚本环节
8
2020/3/31
KETTLE使用-TRANSFORMATION
每一个环节可以通过鼠标拖动来将环节添加到 主窗口中。
并可通过shift+鼠标拖动,实现环节之间的连 接。
2020/3/31
菜单介绍
Job entries菜单列出的是Job 中可以调用的环节列表,可 以通过鼠标拖动的方式对环 节进行添加。
每一个环节可以通过鼠标拖 动来将环节添加到主窗口中。
并可通过shift+鼠标拖动,实 现环节之间的连接。
12
KETTLE使用-JOB
2020/3/31
常用环节介绍
5
2020/3/31
KETTLE使用-KTR&KJB
点击页面左上角的 创建一个新的 transformation,点击 保存到本地路径,例如 保存到D:/etltest下,保存文件名为EtltestTrans, kettle默认transformation文件保存后后缀名为 ktr
点击页面左上角的 创建一个新的job,点击 保 存到本地路径,例如保存到D:/etltest下,保存 文件名为EtltestJob,kettle默认job文件保存后 后缀名为kjb
KETTLE基本知识培训
KETTLE在日志输出方面也有很好的控制功能。
KETTLE日志输出共分七个等级:没有日志(
Nothing)、错诨日志(Error)、最小日志( Minimal)、基本日志(Basic)、详细日志( Detailed)、调试日志(Debug)、行级日志( Rowlevel)。默认为基本日志。
return “hello “ + str;
else return “hello “ + name; //返回一个字符串 } writeToLog(“m”, sayHello());//方法调用
32
JAVASCRIPT的基本应用
异常处理 try…catch… try{ var value = 100/0; }catch(e){
无需安装下载后直接运行spoon.bat即可
5
KETTLE的要求环境(JDK版本)、安装、基本操作
6
KETTLE的要求环境(JDK版本)、安装、基本操作
7
KETTLE的要求环境(JDK版本)、安装、基本操作
8
KETTLE的组件的类型基本说明(作业不转换)
Kettle中有两种脚本文件,transformation
50
启动脚本说明
KETTLE程序启动分两种,一种是作业、一
种是转换。
作业调用启动脚本: kitchen.sh(
kitchen.bat)
转换调用启动脚本: pan.sh( pan.bat)
51
启动脚本说明
kitchen.sh(span.sh)说明
52
启动脚本说明
Kitchen.bat(span.bat)说明
11
KETTLE的组件的类型基本说明(作业不转换)
Kettle基本知识交流
Pentaho 产品线
Pantaho产品线 Reporting:可集成Jasper和BIRT Data Mining:Weka Analysis:Mondrian Dashboards: Data Integration:Kettle
精品课件
Kettle 家族
Kettle 5.0家族目前包括几个产品: Spoon—转换(transform)设计工具 (GUI方式) Pan—转换(transform)执行器 (命令行方式) Kitchen—工作(job)执行器 (命令行方式) Carte —基于Jetty的,监听Http请求 Encr —用户加密密码
文本文件“内容”标签编辑
精品课件
点击获取字段按钮,可自动获取字段名称 ,然后编辑相关属性,预览记录。
精品课件
编辑输出表控件属性
精品课件
然后点击绿色按钮,启动转换
精品课件
保存转换
精品课件
可以查看执行结果
精品课件
可以加入执行SQL脚本
精品课件
在核心对象中有很多控件可用来实 现数据的ETL功能。
精品课件
创建作业
从左侧通用栏目中拖拽两个控件
精品课件
双击Transformation 1进行编辑
精品课件
精品课件
保存jobs后执行任务
精品课件
Kettle 调度
利用Kitchen工具实现作业的调用 Kitchen.bat /file:D:\job_name.kjb
/level:Basic
精品课件
打开Kettle 选择没有资料库
精品课件
创建数据库连接
创建数据库连接
精品课件
输入数据源连接名称,选择数据源类型和 访问方式
Kettle 基础教学PPT教学课件
专门有一个产品 Informatica Data Quality 来 在 GUI 里有数据质量特性,可以手工写 SQL 语句、 数据质量 保证数据质量 java脚本、正则表达式来完成数据清洗。 监控 连接性 有监控和日志工具 有非常详细的监控和日志工具,实际应用中无需 如此详细日志
非常广泛的数据库,文件,另外可以通过插件扩展。 各种数据源
执行正则表达式 调用存储过程 检查字段是否存在
•16
Kettle组件介绍
数据库连接,用户异构数据库关联限制条件查询,注意索引
数据库查询,跟数据库连接接近,只是不可以限制条件 从HTTP接口中获取数据
•4
Kettle特点—kettle与Infomatica比较
Kettle 易用性 部署 Informatica 有非常容易使用的 GUI,出现问题可以到社区咨询。 非常容易使用的 GUI,但是要专门的训练。 需要JVM。 需要有 Server
效率
需要手工调整,对 Oracle 和 PostGre 等数据源做 最快的 了优化,同时也取决于转换任务的设计。
绿色免安装,解压即可用。
在不同的平台上运行Spoon 所支持的脚本:
1. 2.
Spoon.bat: 在windows 平台运行Spoon。
Spoon.sh: 在Linux、Apple OSX、Solaris 平台运行Spoon。
•8
Kettle开发流程
双击运行 kettle 目录下的spoon.bat,出现 kettle 欢迎界面。 创建资料库(可省略)。 创建数据库连接。 创建转换。
•3
相关知识链接
kettle的官网是 /projects/data-integration/
kettle新手教程
kettle新⼿教程1、kettle介绍kettle是⼀个ETL(Extract, Transform and Load抽取、转换、加载)⼯具,ETL⼯具在数据仓库项⽬使⽤很频繁,kettle也能够应⽤在下⾯⼀些场景:在不同应⽤或数据库之间整合数据把数据库中的数据导出到⽂本⽂件⼤批量数据装加载数据库数据清洗集成应⽤相关项⽬是个使⽤kettle使⽤很easy,通过图形界⾯设计实现做什么业务,⽆需写代码去实现。
因此,kettle是以⾯向元数据来设计。
kettle⽀持⾮常多种输⼊和输出格式。
包含⽂本⽂件。
数据表。
以及商业和免费的数据库引擎。
另外,kettle强⼤的转换功能让您⾮常⽅便操纵数据。
以下展⽰⼀个简单的“Hello World”演⽰样例,本教程将告诉你怎样轻松⽤kettle⼯作。
让你有基础可以学习更复杂的转换功能。
安装kettlekettle设计⼯具spoon介绍hello world演⽰样例⼜⼀次设计helloworld演⽰样例2、⼊门演⽰样例学习2.1、安装kettle⾸先通过官⽹下载kettle;需求环境:kettle须要jre1.5及以上版本号。
能够通过oracle官⽹免费下载;kettle安装kettle⽆需安装。
直接解压zip⽂件到指定的⽬录。
在类unix操作系统上。
须要运⾏下⾯脚本:cd Kettlechmod +x *.sh执⾏kettle中的⼀个图形⽤户界⾯叫spoon,spoon能够设计转换和作业,也能够执⾏转换和作业,以下的内容将继续介绍他们。
2.2、kettle设计⼯具spoon介绍Spoon是⼀个图形设计⼯具,⽤来设计和測试数据交换处理流程,也能够通过命令⾏(终端)运⾏处理流程。
资源库和⽂件在spoon中设计作业和转换。
kettle提供两种⽅式存储:资源库和⽂件;假设你选择资源库,spoon第⼀次启动时须要创建资源库。
选择⽂件⽅法,作业保存⽂件是的扩展名是KJB。
转换⽂件的扩展名为KTR,为了简化学习,以下教程採⽤后者。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 测试转换 • 点击”运行”按钮,填写参数内容,并点击”启动”
• 查看测试结果
• 查看导出的数据文件
Kettle 调用
• 利用Pan工具实现转换的调用 pan -file C:\TEST.ktr -level Basic -logfile C:\TEST.log "-param:ENAME=ADAMS"
Kettle转化功能介绍 1
• Kettle 中有两种脚本文件,transformation (.ktr)和 job(.kjb), transformation 完成针对数据的基础转换,job 则完成整个工 作流的控制。 • 所有功能支持控件化,使用简单 • 支持多样化数据源类型:
» » » » » » » 基本的文本文件 Access、Excel、XML、Property文件格式 MDX查询语言、 Cube文件、Streaming XML数据流 自动产生空记录或者行 从XBase类型文件(DBF)读取数据 关系型数据库 获取系统信息如文件名称、系统时间等
Kettle 家族
• Kettle 5.0家族目前包括几个产品: Spoon—转换(transform)设计工具 (GUI方式) Pan—转换(transform)执行器 (命令行方式) Kitchen—工作(job)执行器 (命令行方式)
Kettle 的安装
• 要运行此工具你必须安装Sun 公司的JAVA 运行环境1.4 或者更 高版本,相关资源你可以到网络上搜索JDK 进行下载 • 绿色免安装,解压即可用。 • 在不同的平台上运行Spoon 所支持的脚本: • Spoon.bat: 在windows 平台运行Spoon。 • Spoon.sh: 在Linux、Apple OSX、Solaris 平台运行Spoon。
• 支持分区表和集群
Kettle作业功能介绍 1
• 可以执行操作系统命令和操作:
» Ping 主机 » 写日志 » 发送邮件 » 从POP Server获取邮件并保存在本地 » 比较文件夹、文件 » 创建、复制、移动、删除、压缩文件 » 从HTTP获取或者上传文件 » 操作延迟等待
Kettle作业功能介绍 2
商业分析 卓越中心
Kettle 培训
Kettle 培训内容
• Kettle 功能 • Kettle 控件介绍 • Kettle 案例演示
Kettle介绍
• Kettle 是一款开源的、元数据驱动的ETL工具集,是开源 ETL 工具里 功能比较强大的一个。 • Kettle 是”Kettle E.T.T.L. Envirnonment”只取首字母的缩写,这 意味着它被设计用来帮助你实现你的ETL 需要:抽取、转换、装入和 加载数据;翻译成中文名称应该叫水壶,名字的起源正如该项目的主 程序员MATT 在一个论坛里说的哪样:希望把各种数据放到一个壶里然 后以一种指定的格式流出。
• 从左侧输入栏目中选择”表输入”控件和”文本文件输出”控件,拖拽到右 侧工作空间中
• 选中两个控件,在其中一个控件上右击,选择”新建节点连接”
• 选择”起始步骤”
• 双击”表输入”控件,进行编辑 • 在SQL中输入:SELECT * FROM EMP WHERE ENAME='${ENAME}‘ • 其中${ENAME}是参数。
• 支持多种查询
• 转换功能
» 值映射、分组、去重、拆分字段、行列转换 » 复制行
Kettle转化功能介绍3
• 支持的脚本
» JS脚本 »量加载:
» » » » » Greenplum Bulk Loader Oracle Bulk Loader MSSQL Bulk Loader MYSQL Bulk Loader PostgreSQL Bulk Loader
智慧 政府 智慧 企业 智慧 金融
谢谢!
人才 学院
• 数据库连接点击”新建”,并测试连接。点击确认保存改步骤。
• 双击”文本文件输出”控件,进行编辑。浏览选择文件存储的位置。
• 选择”内容”编辑文本的输出格式
• 点击”字段”选择需要输出的内容。 • 点击”获取字段”,自动生成字段。 • 点击”确定”,保存。
• 添加参数 • 鼠标点击右键,选择”转换设置”。 • 在”命名参数”填写参数:ENAME
Kettle 调用
• 利用Kitchen工具实现作业的调用 • Kitchen -file C:\TEST.kjb -level Detailed -logfile C:\TEST_JOB.log "param:ENAME=KING"
总结
• Kettle的功能非常强大,数据抽取效率也比较高,开源产品,可以进行第 三方修改,工具中的控件能够实现数据抽取的大部分需求。 • 所有功能支持控件化,使用简单。
Kettle转化功能介绍 2
• 特殊目标数据源支持
» 把数据写入到Cube » 把数据写入XML » » » » » » » 调用数据库存储过程 基本的数据库查询 判断表以及列、操作系统文件是否存在 从URL接收查询 使用Web服务查询信息 使用数据流中的值作为参数来执行一个数据库查询 流查询:从转换中其他流里查询值
Kettle实施步骤
• • • • • 双击运行 kettle 文件夹下的 Kettle 文件,出现 kettle 欢迎界面。 创建资料库(可省略) 创建数据库连接 创建转换 创建Jobs,进行流程化控制
Kettle案例
• 案例描述: • 从oracle数据库中导出数据到文本文件中
创建转换
• 选择”文件”,选择”新建”---->”转换”
• • • • • 判断文件是否存在 执行JavaScript、SQL、Shell脚本 支持安全FTP获取、上传文件 删除远程文件 支持SSH2上传下载
数据库连接类型和访问类型
• 支持的数据库连接类型,截图如下, • 有些数据库类型需要完善jar包,以确保数据库能够正确连接
访问类型
• • • • • 数据库访问类型支持如下几种: JDBC OCI ODBC JNDI