资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Pentaho,技术分享,-kettle,工具,1,目录,技术分析,背景介绍,基础框架,资源访问,运行原理,实际应用,数据转换,任务,job,日志和邮件,异构数据,性能集群,应用集成,2,背景介绍,Kettle,是一个基于,JAVA,的开源,ETL,工具,可以完成数据抽取、转换、加载等工作。,Kettle,是商务智能软件,Pentaho,的组成部分。,Pentaho,是一个比较流行的、基于,JAVA,的开源的商务智能软件。其中包括一个,web server,平台和报表、分析、图表、,数据集成,、数据挖掘等工具软件。,Pentaho,偏向于与业务流程,结合,,允许业务人员或技术人员,创建,报表、图表、分析模型,,并可以按照业务规则,制定数据的流向,等。,3,基础框架,纯,java,编写、开源、可以在,Window,、,Linux,、,Unix,上运行,无需安装。,数据库支持使用的,JDBC,的方式。,文件操作是依赖文件各自的,JAVA,包。,集成了,spring,框架(主要是针对数据源和事务的管理)。,集成,jetty,的容器,它是一个,servlet,的容器,(集群转换时会体现)。,4,资源访问,系统资源,机器的名和系统信息等。,数据库,相当于,plsql,的数据库工具。,各种数据文件,dbf,、,excel,、,csv,、文本文件等。,Hadoop,分布式系统的文件(,4.2,版本)。,Ldap,目录。,数据流,JMS,、,RSS,等。,Webservice,读取。,可以执行各种脚本,javascript,、,sql,、,shell,等。,5,运行原理,Kettle,实际工作时,也是工作流的模式,按照预先制定的工作步骤,对数据流做操作。,Kettle,的执行可以分为两个层面。,转换,transform,:,是要做具体的数据流的操作,可以对数据进行抽取、清洗、转换、数据流向控制等。,任务,job,:,是整套业务转换,可以做前期准备工作(例如文件判断,脚本执行等)、业务转换调度、日志和预警、定时执行等。,6,运行原理,对应这两个层面,可以把,Kettle,工具主要分成,4,个模块。转换,(transform),设计工具,转换设计器。转换,(transform),执行器,转换执行器。,任务,(job),设计工具,任务设计器。任务,(job),执行器,任务执行器。,在,UI,环境下把数据流图设计好以后,会保存成相应的,xml,文件。执行转换时,在每个实际的转换步骤中,有三个主要的类在工作。,Step,对业务规则的实现,对行级记录的操作。,StepMeta,调用数据流和,xml,配置文件。,StepData,调用系统资源。文件缓存,输入输出等。,7,数据转换,转换主要包括三部分,数据输入、转换过程、数据输出。,输入:,Kettle,对常规数据库数据文件都有支持。,转换:,转换的工作比较丰富。,可以查询数据库等。,在转换的过程中,也可以执行,sql,和,shell,等脚本。,输出:,数据的输出形式也是涵盖了目前常见的各种形式。,8,数据转换,9,任务,job,Job,的主要工作就是调度转换。,做预处理和清理工作,预先执行脚本,转换完成后清理资源文件等,脚本 可以是,javascript,、,sql,、,shell,等。,定时执行任务。,日志和邮件报告任务情况。,10,任务,job,11,日志和邮件,日志和邮件是体现“确保有效的执行解决方案”的重要机制。,日志和邮件都可以定义在不同的级别,可以是转换步骤,也可以在,JOB,任务级别。日志可以通过,UI,控制台显示,也可以指定输出到文件。,发送邮件带附件(可以把转换中生成的结果文件直接发送邮件)。,12,异构数据,Kettle,对异构数据库和异构格式文件的操作是透明的,转换时数据库可以不同,表结构也可以不同,记录可以进行汇总,也可以分拆。,13,性能集群,Kettle,工具运行稳定,在操作系统,IO,允许的情况下每秒钟可以处理,3000,条左右的数据。,当需要转换千万级数据时,可以通过集群方式提高效率,转换速度成倍的增长的。(在集群部署时,是将整个数据流分成若干块,分发到各个子容器中进行处理,然后再将结果进行合并),14,应用集成,由于,Kettle,本身是,JAVA,开发的,所以提供了,java,调用的,API,,方便集成到应用。,可以对外封装,webservice,等。,15,
展开阅读全文