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