您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > Kettle 基础教学
Kettle基础培训整理:小白、玻璃杯Kettle特点Kettle基础知识Kettle开发流程Kettle组件介绍案例介绍什么是KettleKettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。Kettle中文名称叫水壶,该项目的主程序员MATT希望把各种数据放到一个壶里,然后以一种指定的格式流出。相关知识链接kettle的官网是目前常用的版本有5.3,5.25.1以及4.4,4.3等,不推荐再以前的版本,已经过于陈旧。开发、使用者如何选择版本呢?5.0以后的版本加入了不少新的控件,也对已有功能做了一定优化,根据群内统计来看目前使用4.4版的较多,5.1、5.2也有不少人用,5.3版根据某群友未经证实的经验还有一定问题。Kettle特点—kettle与Infomatica比较总结:kettle配置简单,抽取效率比较高,可以进行第三方修改,工具中的控件能够实现数据抽取的大部分需求。KettleInformatica易用性有非常容易使用的GUI,出现问题可以到社区咨询。非常容易使用的GUI,但是要专门的训练。部署需要JVM。需要有Server效率需要手工调整,对Oracle和PostGre等数据源做了优化,同时也取决于转换任务的设计。最快的数据质量在GUI里有数据质量特性,可以手工写SQL语句、java脚本、正则表达式来完成数据清洗。专门有一个产品InformaticaDataQuality来保证数据质量监控有监控和日志工具有非常详细的监控和日志工具,实际应用中无需如此详细日志连接性非常广泛的数据库,文件,另外可以通过插件扩展。各种数据源Kettle基础知识—kettle家族Kettle家族目前包括几个产品:Spoon—转换(transform)设计工具(GUI方式)Pan—转换(transform)执行器(命令行方式)Kitchen—工作(job)执行器(命令行方式)Carte—基于Jetty的,监听Http请求Encr—用户加密密码Kettle基础知识—kettle家族Spoon允许你通过图形界面来设计ETL转换过程(Transformation)和作业(Job)。例如,从一个SAP系统抽取数据,并把这些数据存储到一个文件里。Pan允许批量运行由Spoon设计的ETL转换(例如使用时间调度器)。Pan是一个后台执行的程序,没有图形界面。Kitchen允许批量使用由Chef设计的任务(例如使用一个时间调度器)。KITCHEN是一个后台运行程序。Job和Transformation的差别:Transformation专注于数据的ETL,而Job的范围比较广,可以是Transformation,也可以是Mail、SQL、Shell、FTP等,甚至可以是另外一个Job。Kettle基础知识—kettle的安装要运行此工具你必须安装Sun公司的JAVA运行环境1.4或者更高版本。绿色免安装,解压即可用。在不同的平台上运行Spoon所支持的脚本:1.Spoon.bat:在windows平台运行Spoon。2.Spoon.sh:在Linux、AppleOSX、Solaris平台运行Spoon。Kettle开发流程双击运行kettle目录下的spoon.bat,出现kettle欢迎界面。创建资料库(可省略)。创建数据库连接。创建转换。创建Jobs,进行流程化控制。Kettle控件介绍从关系型数据库中获取源数据。用于数据持久化,将数据加载到关系型数据库中。从文本文件中获取源数据。将数据写入文本文件中,如果路径下无此文件,kettle会自动建立。Kettle控件介绍从MongoDB中获取源数据。用于数据持久化,将数据加载到MongoDB中。均用于从XML文件获取数据,只是解析方式不同,一般情况下均采用第二个控件。将数据写入XML文件中,如果路径下无此文件,kettle会自动建立。Kettle组件介绍删除指定表匹配条件的数据操作。更新指定表指定条件的数据数据网格,能够创建指定格式的网格数据。获取系统信息,包括系统中的时间、日期、JOB转换信息能够读取json格式数据,输出成标准流字段获得一个随机值Kettle组件介绍增加常量,可以选择常量的数据类型增加序列,可指定步长计算器,可以做数据加减乘除和日期处理(有小bug)拼接数据,可指定分隔符替换字段中的指定字符字段选择,移除以及格式化Kettle组件介绍列转行行转列,先groupby再进行转换将一个字段的值赋值给另一个字段拆分字段成行,根据指定分隔符将一行数据拆分成多行拆分字段,将一个字段拆分成多个字段字符串处理,其中包括trim、大小写转换、特殊字符转换比如换行符、制表符等Kettle组件介绍字符串剪切,可以指定从第几个字符开始、结束去重,可根据某个字段进行去重值映射,如cd值可以映射成:成都如果字段为空,则赋予什么值。如ID为空则补零发送邮件,此step对代码监控有重大意义将流中的指定字段数据值打印到日志中Kettle组件介绍筛选字段中的满足条件的数据流执行SQL脚本(PS:在转换中最先执行)执行JS脚本执行正则表达式调用存储过程检查字段是否存在Kettle组件介绍数据库连接,用户异构数据库关联限制条件查询,注意索引数据库查询,跟数据库连接接近,只是不可以限制条件从HTTP接口中获取数据从webservices接口中获取数据(有bug)关联数据库,注意使用之前要对关联字段进行排序维度查询更新,多用于实现缓慢变化维Kettle组件介绍字段检查,如设定单笔订单金额不能超过10W等取前一条数据或者后一条数据,一般用于环比、同比分组,groupby需要SORT,memory不需要从Hbase中查询数据获取配置文件中参数或者数据流中的参数,赋值给字段将字段设置成变量案例介绍(1)目标:将源数据进行清洗后输出至文本文件。1、表输入控件A,抽取订单信息;2、B的转换,对抽取出的数据进行轻度清洗;3、清洗之后的脏数据放到F的error文件中,其中E为字段合并控件,即Contact;有效数据放到D中的文本中,提供给后面的转换使用。案例介绍(2)目标:将系统时间格式化为目标格式日期1、获取系统时间信息(控件A);2、获取配置文件参数(控件B);3、再使用JS控件(控件C),加工获取的时间日期信息,主要使用JS语言(kettle也封装了一些js函数);4、将得到的日期,格式化为目标信息(控件D);5、将最终结果用参数设置(控件E),设置为虚拟机级别的参数,提供给后面的Trans、Job使用。
本文标题:Kettle 基础教学
链接地址:https://www.777doc.com/doc-3692653 .html