kettle经验总结

合集下载

自己总结的Kettle使用方法和成果

自己总结的Kettle使用方法和成果

KETTLE使用自己总结的Kettle使用方法和成果说明简介Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix 上运行,绿色无需安装,数据抽取高效稳定。

Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出.Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做.Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

Kettle可以在http://kettle。

pentaho。

org/网站下载到。

注:ETL,是英文Extract—Transform—Load 的缩写,用来描述将数据从来源端经过萃取(extract)、转置(transform)、加载(load)至目的端的过程.ETL一词较常用在数据仓库,但其对象并不限于数据仓库。

下载和安装首先,需要下载开源免费的pdi-ce软件压缩包,当前最新版本为5.20。

0。

下载网址:/projects/pentaho/files/Data%20Integration/然后,解压下载的软件压缩包:pdi—ce—5。

2.0.0—209.zip,解压后会在当前目录下上传一个目录,名为data—integration。

由于Kettle是使用Java开发的,所以系统环境需要安装并且配置好JDK。

žKettle可以在http:///网站下载ž下载kettle压缩包,因kettle为绿色软件,解压缩到任意本地路径即可。

运行Kettle进入到Kettle目录,如果Kettle部署在windows环境下,双击运行spoon.bat或Kettle.exe文件.Linux用户需要运行spoon。

sh文件,进入到Shell提示行窗口,进入到解压目录中执行下面的命令:# chmod +x spoon。

KETTLE使用经验总结

KETTLE使用经验总结

KETTLE使用经验总结《kettle使用经验总结》目录1. 软件安装 (1)1.1.安装说明 (1)1.2.安装JDK (1)1.3.安装PDI (1)1.4.创建资源库 (2)1.5.修改配置文件 (3)1.6.启动服务器 (6)2. 操作说明 (7)2.1.运行转换/作业 (7)2.2.转换的并行 (7)2.3.作业的并行 (9)2.4.集群的使用 (9)2.5.记录日志 (11)2.6.连接HBASE (16)2.7.读取XML文件 (26)2.8.连接HIVE2 (31)2.9.大字段处理 (35)3. 性能优化 (39)《kettle使用经验总结》3.1.利用好数据库性能 (39) 3.2.用并行或者集群解决好数据插入瓶颈 (40)3.3.增大提交的记录数及大字段数据处理 (40)3.4.全量抽取先抽取后建索引 (41)3.5.增量抽取注意去重数据量 (41)3.6.利用中间表分段处理数据 (42)3.7.聚合优先 (43)4. 常见问题解决 (43)4.1.大量数据抽取导致内存溢出 (43)4.2.字段值丢失 (43)4.3.输出记录数大于输入记录数 (43)《kettle使用经验总结》1.软件安装1.1.安装说明本文档对应的产品及版本是pdi-ce-5.4.0.1-130。

由于该产品使用java 开发,所以需要在服务器上配置java环境。

如果是linux系统,为了操作方便,可以在linux上部署服务器,Windows启动客户端。

1.2.安装jdk下载jdk1.7或以上安装包,安装成功后,配置java环境变量。

JAVA_HOME: java安装目录CLASSPATH:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\ tools.jarPATH:添加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;LINUX下配置环境变量:进入/etc/profile(系统)或.bash_profile(用户)export JAVA_HOME=/usr/local/java/jdk1.8.0_60export PATH=$JAVA_HOME/bin:$PATHexportCLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar配置完成后检查java -version 和$JAVA_HOME是否启用1.3.安装PDI地址/projects/data-integration/下载P DI二进制文件pdi-ce-5.4.0.1-130.zip到各服务器中并解压,data-integration目录里面包含了PDI所有内容。

kettle实验总结

kettle实验总结

kettle实验总结我们来了解一下kettle的基本概念和功能。

Kettle是一款基于图形化界面的工具,通过可视化的方式帮助用户构建数据整合和转换的过程。

它提供了丰富的组件和功能,用户可以通过拖拽组件、设置参数和连接组件的方式来构建数据处理流程。

Kettle支持多种数据源和格式,包括关系型数据库、文件、Web服务等,用户可以方便地从不同的数据源中提取数据,并进行预处理、转换和加载。

接下来,我们将探讨如何使用kettle进行数据整合和转换的实验。

在实验前,我们需要准备好数据源和目标数据库,并确保kettle已经正确安装和配置。

首先,我们需要创建一个kettle的工作空间,并在工作空间中创建一个转换(Transformation)。

转换是kettle 中的基本单位,它由一系列的步骤(Step)组成,每个步骤都是一个数据处理的单元。

在转换中,我们可以使用多个步骤来完成不同的数据处理任务。

例如,我们可以使用"输入"步骤从源数据库中提取数据,然后使用"过滤"步骤对数据进行筛选,再使用"转换"步骤进行数据转换,最后使用"输出"步骤将结果加载到目标数据库中。

在每个步骤中,我们可以设置相应的参数和选项,以满足具体的数据处理需求。

除了基本的数据处理步骤,kettle还提供了丰富的功能和插件,用于处理更复杂的数据转换任务。

例如,我们可以使用"维度表输入"步骤来处理维度表的数据,使用"合并记录"步骤来合并不同数据源的记录,使用"数据校验"步骤来验证数据的完整性等。

通过灵活地组合和配置这些步骤,我们可以实现各种复杂的数据整合和转换任务。

在进行实验时,我们还可以使用kettle提供的调试和监控功能,以确保数据处理流程的正确性和性能。

例如,我们可以使用"调试"功能逐步执行转换,并观察每个步骤的输入和输出结果,以及中间数据的变化情况。

kettle面试题总结

kettle面试题总结

kettle面试题总结
1. Kettle是什么?它的主要作用是什么?
Kettle是一款开源的ETL工具,用于数据的抽取、转换和加载。

它可以从多种数据源中提取数据,对数据进行清洗、转换和合并,然后将数据加载到目标数据库或文件中。

Kettle可以帮助用户快速、高效地处理大量数据,提高数据处理的效率和准确性。

2. Kettle的核心组件有哪些?每个组件的作用是什么?
Kettle的核心组件包括:Spoon、Pan、Carte和Kitchen。

Spoon 是图形化界面,用于设计和管理转换和作业;Pan是命令行界面,用于执行转换和作业;Carte是自定义脚本引擎,用于扩展Kettle的功能;Kitchen是作业调度和监控工具,用于管理和维护Kettle的作业。

3. Kettle支持哪些数据源?如何配置数据源?
Kettle支持多种数据源,包括关系型数据库(如MySQL、Oracle 等)、非关系型数据库(如MongoDB、HBase等)、文件(如CSV、XML等)等。

在配置数据源时,需要在Spoon或Pan中选择相应的数据源类型,并填写相应的连接信息,如数据库地址、用户名、密码等。

4. Kettle如何处理数据转换?
Kettle使用转换(Transformation)来处理数据转换。

转换是一个由多个步骤组成的流程,每个步骤都可以对数据进行处理和操作。

用户可以在Spoon中设计和编辑转换,通过拖拽和配置各种步骤来实现数据的转换和处理。

kettle对不同类型文件数据进行转换的基本方法的实验总结

kettle对不同类型文件数据进行转换的基本方法的实验总结

kettle对不同类型文件数据进行转换的基本方法的实验总结Kettle对不同类型文件数据进行转换的基本方法的实验总结导言在当今信息时代,数据的处理和转换是企业和个人不可或缺的重要任务。

而对于数据处理工具来说,Kettle(即Pentaho Data Integration)无疑是其中一员佼佼者。

它是一款开源的ETL (Extract-Transform-Load)工具,能够帮助用户快速、高效地处理各种类型的数据。

本文将着眼于Kettle在不同类型文件数据转换方面的基本方法进行实验总结,希望能够为读者提供一份有价值的参考。

一、CSV文件数据转换1.读取CSV文件CSV(Comma Separated Values)文件是一种常见的以逗号分隔的文本文件格式,常用于数据交换。

在Kettle中,我们可以通过添加"CSV输入"步骤来读取CSV文件数据。

在进行数据转换之前,我们有时需要将CSV文件中的数据格式进行调整。

将日期字段转换为日期类型、将数值字段转换为特定精度的数值类型等。

Kettle提供了"Select values"和"Modify"等步骤来满足这些需求。

3.数据清洗和过滤在实际的数据处理中,我们可能会遇到一些数据质量问题,比如缺失值、异常值等。

此时,我们可以使用Kettle提供的"Filter rows"和"Cleanse"等步骤来进行数据清洗和过滤,确保数据质量的可靠性和准确性。

二、Excel文件数据转换1.读取Excel文件与CSV文件不同,Excel文件是一种二进制文件格式,它包含了丰富的数据类型和复杂的表结构。

在Kettle中,我们可以通过添加"Excel 输入"步骤来读取Excel文件数据。

在进行读取时,我们需要注意选择适当的Sheet以及指定正确的列和行范围。

与CSV文件一样,我们通常需要对Excel文件中的数据进行格式转换。

kettle调研手记-技巧汇总

kettle调研手记-技巧汇总

1、对于源数据后面自动添加“.0”的问题可以通过在输入步骤“格式”栏中设置长度解决,如下图2、输入为excel文件时的设置说明3、根据入库单号把明细中的金额求和后,更新到主表中,但是如果有的入库单号在主表中不存在则就会报错,这是数据问题,解决办法为,在更新步骤中设置一下”忽略查询失败”,则只对目标表中存在数据进行更新,如下图:4、使用资源库(repository)登录时,默认的用户名和密码是admin/admin5、当job是存放在资源库(一般资源库都使用数据库)中时,使用Kitchen.bat执行job时,需使用如下的命令行:Kitchen.bat /rep repository_name /user admin /pass admin /job job 名称> E:\\test.log其中repository_nameo为repository.xml中的repository,在最下面6、当job没有存放在资源库而存放在文件系统时,使用Kitchen.bat执行job时,需使用如下的命令行:Kitchen.bat /norep /file user-transfer-job.kjb7、资源名称最好不要用中文,如果程序在保持时的字符集跟系统不一致,就会造成repositories.xml文件中出现乱码,导致无法启动,解决方法是:到用户目录下找到repositories.xml。

将.kettle 文件夹删除,重写用英文名称创建后,成功启动。

8、在WINDOWS下自动执行的配置:先建一个bat文件,内容为:E:\work\kettle\pdi-ce-4.2.0-RC1\data-integration\Kitchen.bat /rep kettle_test /user admin /pass admin /job job的名称然后在windows中新建一个定时任务即可9、在LINUX下执行脚本命令:10、KETTLE所在目录/data-integration/kitchen.sh /reprepository_name /user admin /pass admin /job job名称> /opt/data_wash/log/test.log其中repository_nameo为repository.xml中的repository,在最下面11、Repository.xml在linux系统下的位置:$HOME/.kettle/repository.xml12、定义全局变量:在.kettle目录下,打开kettle.properties文件,以键值对的方式添加即可,如:变量名称=变量值,然后在kettle设置图中可以利用”Get Variables”步骤获取到13、在windows下,kettle的资源库中的数据库表名为小写,而在linux下则为大写,这一点需要注意,以移植时需要所导出表的插入sql脚本,否则会出现无法登录,找不到表的错误。

kettle使用总结

kettle使用总结

kettle使⽤总结Kettle使⽤笔记⼀、基本概念:1.1、资源库保存kettle脚本或转换、存放数据库连接的地⽅,可以建⽴多个数据库连接,使⽤时就⽆需每次重复建⽴1.2、数据库连接(db links)连接数据库的功能,需处理数据库中的数据时创建,可连接Oracle、SqlServer、MySQL、DB2等1.3、转换(trans)处理数据的ETL过程,⾥⾯存放许多处理数据的组件,完成后保存会⽣成⼀个ktl⽂件。

1.4、作业(job)⾃动、定时执⾏转换的步骤的名称,可以在⾃动执⾏转换的过程添加参数进⾏控制。

1.5、步骤(steps)转换和作⽤的每个操作都是⼀个步骤。

⼆、⼯具栏:2.1、资源库概念保存kettle脚本或转换的地⽅,相当于myeclipes的workspace,另⼀种保存kettle脚本或流程的⽅法是需要保存的时候⽤⽂件保存,点击另存为出现(PS:打开kettle的时候加载的也是资源库)2.2、资源库位置Tools -> 数据库-> 连接数据库2.3、数据库连接创建数据库连接的时候会同时创建数据库连接?右键点击新建转换-> 点击主对象树-> 右键DB连接->新建数据库连接(PS:创建数据库后可以点击Test 判断数据库连接创建成功了没!,Oracle RAC 环境下的数据库连接创建数据库连接的⽅法不同)三、基本操作:3.1、轮流发送模式和复制发送模式的区别如果获取的数据必须同时进⾏多步处理(⼀种⽅式是将数据复制后处理,⼀种是获取的数据进⾏轮流的间隔处理),设置⽅式为:选中Data Grid –> 点击右键–> 数据发送-> 选择轮流发送模式或复制发送模式下图为复制处理的⽅式:红框选中的标签为复制处理3.2、分离步骤的⽅法⽐如下图中分离出步骤”删除”的⽅法:选中”删除”->点击右键-> 点击分离步骤3.3、过滤错误数据的⽅法采集的数据保存到数据库的时候如果有错误就,整个ETL处理流程就会停⽌,可以⽤过滤错误的⽅法将错误的数据写到⽂本中,保证ETL流程继续执⾏步骤:在连接”表输出”和“⽂本⽂件输出2”的时候选择”Error Handing of step”效果如下图(PS:可以明确是哪个字段,那条数据出现的错误)3.4、查询步骤中数据详情的⽅法⽐如查看下图中”表输出”步骤的数据情况的步骤:选中”表输出” -> 点击右键-> 选择显⽰输⼊\输出字段四、转换组件介绍:4.1、核⼼对象-输⼊⽬录下组件4.1.1、表输⼊组件及属性4.1.1.1允许延迟转换像Oracled的BLOB类型字段,需要的时候开始不加载这些数据,最后输出的时候才进⾏4.1.1.2 替换SQL语句⾥的变量(只在Job⾥⾯应⽤)配置需注意的地⽅:1、SQL语句的条件必须⽤${}符合关联起来2、替换SQL语句⾥的变量必须勾选3、Job中的参数组件的设置及转换必须指明是哪个转换4.1.1.3 从步骤插⼊数据配置需注意的地⽅:1、从”获取系统信息”组件中输⼊的参数名称必须和表输⼊的字段名相同2、表输⼊的where 条件中的值⽤”?”代替3、从步骤插⼊数据必须勾选4、获取系统信息组件中的参数类型必须选“命令⾏参数1”5、执⾏JOB后,在参数输⼊栏中输⼊你的参数值4.1.1.4 表输⼊组件⾥的执⾏每⼀⾏?(必须和从步骤插⼊数据选项⼀起使⽤)配置需注意的地⽅:1、从”DataGrid”组件中输⼊的参数名称必须和表输⼊的字段名相同.且该字段有多个值2、表输⼊的where 条件中的值⽤”?”代替3、从步骤插⼊数据、执⾏每⼀⾏?两个选项必须勾选4.1.1.5 记录数量限制如果查询的数据有多条,可选择”记录数量限制”选项进⾏查询数据的数量进⾏限制,⽐如只取100条。

KETTLE使用经验总结

KETTLE使用经验总结

KETTLE使用经验总结1.熟悉KETTLE的基本概念和操作在开始使用KETTLE之前,建议先花一些时间了解KETTLE的基本概念和操作。

KETTLE的核心概念包括转换(Transformation)、作业(Job)、步骤(Step)、输入(Input)和输出(Output)等。

了解这些基本概念可以帮助你更好地理解和使用KETTLE。

2.认真设计转换和作业在使用KETTLE进行数据转换和加载之前,我们需要先认真设计转换和作业。

转换和作业的设计应该考虑到实际需求和数据流程,避免设计不合理或冗余的步骤。

同时,还需要考虑数据的质量和稳定性,以确保转换和作业的可靠性。

3.使用合适的步骤和功能KETTLE提供了很多不同的步骤和功能,我们需要选择和使用合适的步骤和功能来实现实际需求。

比如,如果需要从数据库中抽取数据,可以使用“表输入”步骤;如果需要将数据写入到数据库中,可以使用“表输出”步骤。

熟悉并正确使用这些步骤和功能,可以提高工作效率。

4.合理使用转换和作业参数KETTLE提供了转换和作业参数的功能,可以方便地传递参数和配置信息。

合理使用转换和作业参数可以使转换和作业更具灵活性和可重复性。

比如,可以使用作业参数来配置文件路径和数据库连接等信息,这样可以只修改参数值而不需要修改转换和作业的配置。

5.使用调试和日志功能在进行复杂的数据转换和加载时,很可能遇到问题和错误。

KETTLE 提供了调试和日志功能,可以帮助我们定位和解决问题。

比如,可以在转换和作业中插入“日志”步骤,将关键信息输出到日志文件中;还可以使用“调试”选项来跟踪转换和作业的执行过程。

6.定期备份和优化转换和作业转换和作业的备份和优化非常重要。

定期备份可以避免转换和作业的丢失和损坏;而优化转换和作业可以提高其执行性能。

比如,可以使用数据库索引来加快查询速度,可以使用缓存来减少数据库访问次数。

7.与其他工具和系统集成KETTLE可以与其他工具和系统进行集成和扩展。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Pan命令来执行转换,下面给出的是pan参数。

Kitchen 命令用于执行作业
Carte 用于添加新的执行引擎
Kettle的资源库和Carte的登录,密码都是用Encr加密的。

使用中遇到的问题及总结:
这两个组件用之前必须先对数据进行排序,否则数据会不准确。

而且merge join会很慢,尽量要少用。

这个组件默认auto commit false,所以如果要执行一些sql,必须在后面加commit。

貌似没什么用,其实也没什么用。

Kettle讲究有进有出,如果最后的没有输出,要加上这个空操作。

实际上测试不写也没问题。

执行java script,这个组件很强大,大部分用组件实现不了
的东西,都可以通过这个来转换。

而且可以调用自己写的java 类。

强大到不行~
这个组件很奇怪,顾名思义调用存储过程的,但实际上不能调用不传参数的存储过程。

如果有没有参数的存储过程,现在的解决方案是用sql脚本来执行。

一个设置变量,一个获得变量。

这个本来没什么要说的,但在实际应用中发现,在一个trans中设置的变量,在当前trans中并不一定能获得到,所以设计的时候先在一个trans中设置变量,然后在后续的trans中来获得就可以了。

让人惊喜的东西,大数据量导入,事实上让人近乎绝望,研究了一天依旧不会用。

而且我怀疑确实不能用。

其实这个组件无非是实现了copy命令,目前的解决方案,sql脚本,先汗一个,不知道跟这些组件相比效率会怎样。

三个亲兄弟,功能差不多,长的也很像,看了源码感觉,性能有差异,就性能而言,文本文件输入组件很差,它不如csv file input和fixed file input组件,因为后面的两者启用了java nio技术。

顺便提一句而已。

kettle内置性能监控,通过分析能知道哪一环节出现瓶颈。

以上是trans的内容,关于job相比而言简单一些,只是调用trans而已。

值得一说的是job 以start开始,这个start只能有一个。

当然不说很多人也会认为是只能有一个,
但我之所以这么说是因为一个trans可以有多个开始。

Start中可以设置job的定时启动,貌似做的很强大,实际用起来不知道怎么样,因为在之前的版本中job是不能定时调度的,要想调度只能用操作系统的定时任务来启动了。

浪费了一些时间:
花了一天半的时间研究了一下,kettle可以以web方式启动,最终发现跟以客户端启动没什么区别,相比感觉客户端的方式更好一些。

另一件浪费时间的事情就是花了接近两天的时间研究大批量导入,最终失败了,好在最后想到接近方案了,具体的上面有提到。

今后要做的可能有意义的事情:
Kettle提供api可以用java来控制,将来可以花些时间来研究一下这方面,这样做的意义是可以在java程序中调用kettle的job和trans,以后可以集成在其他程序中,感觉还是很强大的。

总结:
介绍这么多,其实只是kettle的冰山一角。

要想了解更多,要把kettle内置的例子多看一下,目录为E:\data-integration\samples\ 等你看完了之后发现会的依旧是冰山一角,因为例子很古老,多年之前的,很多组件并没有介绍。

目前为止,kettle提供的组件基本能满足需求,如果将来发现满足不了要求,可以这样做,Kettle暴露了一些接口,可以通过这些接口,来扩展开发新的组件。

相关文档
最新文档