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