KETTLE详细设计
KETTLE详细设计
KETTLE详细设计KETTLE是一种用于提供数据集成、转换和加载功能的开源工具,经常用于数据仓库、数据集市和ETL(抽取、转换和加载)过程。
它提供了图形用户界面,允许用户通过拖放操作来定义数据集成任务,并提供了强大的数据处理功能和可扩展的插件机制。
以下是KETTLE的详细设计,包括架构、核心模块和主要功能。
1.架构- Spoon:用于设计和配置任务的图形界面工具。
- Kitchen:用于以命令行方式执行任务。
- Pan:用于批量执行任务。
这些模块可以独立运行,也可以通过调用KETTLE的API进行集成。
2.核心模块-元数据存储:用于保存任务和转换的定义和配置信息,支持多种数据库和文件格式。
-作业管理器:用于管理任务和转换的执行,包括执行控制、错误处理和监控。
-转换引擎:用于执行数据转换和操作,支持各种数据处理任务,如数据筛选、合并、变换和聚合。
-数据加载:用于向目标系统加载转换后的数据。
3.主要功能-数据连接和访问:支持多种数据源和文件格式,包括关系数据库、文件、XML、JSON等。
可以通过定义连接和查询来访问数据源。
-数据转换和操作:提供了丰富的数据转换和操作功能,如数据筛选、排序、合并、分割、变换、聚合等。
可以通过拖放操作来定义转换和操作的步骤和顺序。
-错误处理和监控:提供了强大的错误处理和监控机制,可以捕获和处理数据转换过程中的错误和异常。
还可以定义报警和日志输出,以便及时发现和解决问题。
-调度和批量执行:支持任务的调度和批量执行,可以定义作业流并规定作业的执行顺序和依赖关系。
支持并行执行和资源调度,以提高任务的执行效率。
-插件机制和扩展性:提供了可扩展的插件机制,允许用户根据需求开发自定义插件并集成到KETTLE中。
还提供了丰富的内置插件,包括数据转换、文件处理、数据库操作等。
总结:KETTLE是一种功能强大的数据集成、转换和加载工具,具有丰富的功能和灵活的架构。
它通过图形用户界面和拖放操作提供了可视化的数据处理方式,使得任务的设计和配置变得简单和直观。
kettle系列教程二
kettle系列教程二1、H ello World 示例通过这个例子,介绍kettle的一些基础知识及应用:⏹使用Spoon工具⏹转换的创建⏹步骤及连线⏹预定义变量⏹在Spoon中预览和执行⏹使用pan工具在终端窗口执行转换概述我们要实现的目标是:通过一个包含人名称的CSV文件,创建一个XML文件,内容是针对每个人添加上问候。
如果csv文件内容如下:last_name, nameSuarez,MariaGuimaraes,JoaoRush,JenniferOrtiz,CamilaRodriguez,Carmenda Silva,Zoe则输出的XML文件内容如下:- <Rows>- <row><msg>Hello, Maria!</msg></row>- <row><msg>Hello, Joao!</msg></row>- <row><msg>Hello, Jennifer!</msg></row>- <row><msg>Hello, Camila!</msg></row>- <row><msg>Hello, Carmen!</msg></row>- <row><msg>Hello, Zoe!</msg></row></Rows>我们要设计的第一个转换就是创建由csv文件生成一个问候XML文件。
转换是由步骤和连接组成,这些步骤和连接构成数据流,因此转换是基于数据流的。
环境准备开始设计一个转换之前,我们先创建一个文件夹Tutorial,我们将保存所有的文件到该文件夹中,然后创建一个csv文件,内容就是前面人员信息,你可以复制到文本文件中,然后命名为list.csv。
Kettle体系结构与源码分析(详细全面)
Kettle程序分析1.简介ETL是数据抽取(Extract)、转换(Transform)、装载(Load)的过程。
Kettle是一款国外开源的ETL工具,有两种脚本文件transformation和job,transformation 完成针对数据的基础转换,job则完成整个工作流的控制。
2.相关概念Job:一个作业,由不同逻辑功能的entry组件构成,数据从一个entry组件传递到另一个entry组件,并在entry组件中进行相应的处理。
Transformation:完成针对数据的基础转换,即一个数据转换过程。
Entry:实体,即job型组件。
用来完成特定功能应用,是job的组成单元、执行单元。
Step:步骤,是Transformation的功能单元,用来完成整个转换过程的一个特定步骤。
Hop:工作流或转换过程的流向指示,从一个组件指向另一个组件,在kettle源工程中有三种hop,无条件流向、判断为真时流向、判断为假时流向。
3.体系结构kettle平台是整个系统的基础,包括元数据管理引擎、数据集成引擎、UI和插件管理模块。
(1)元数据管理引擎元数据管理引擎管理ktr、kjb或者元数据库,插件通过该引擎获取基本信息,主要包括TransMeta、JobMeta和StepMeta三个类。
TransMeta类,定义了一个转换(对应一个.ktr文件),提供了保存和加载该文件的方法;JobMeta类,同样对应于一个工作(对应一个.kjb文件),提供保存和加载方法;StepMeta类,保存的是Step的一些公共信息的类,每个类的具体的元数据将保存在显示了StepMetaInterface的类里面。
(2)数据集成引擎数据集成引擎包括Step引擎、Job引擎和数据库访问引擎三大部分,主要负责调用插件,并返回相应信息。
(3)UIUI显示Spoon这个核心组件的界面,通过xul实现菜单栏、工具栏的定制化,显示插件界面接口元素,其中的TransGraph类和JobGraph类是用于显示转换和Job的类。
Kettle5.某使用步骤带案例解析详细版
Kettle 使用方法介绍1、Kettle 概念Kettle 是一款国外开源的 ETL 工具,纯java 编写,可以在 Window 、Linux 、Unix上运行,绿色无需安装,数据抽取高效稳定。
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里, 然后以一种指定的格式流出。
Kettle 这个ETL 工具集,它允许你管理来自不同数据库的数据,通过提供一个图 形化的用户环境来描述你想做什么,而不是你想怎么做。
Kettle 中有两种脚本文件,transformation 和job ,transformation 完成针对数据的 基础转换,job 则完成整个工作流的控制。
2、下载和部署下载kettle 压缩包,因kettle 为绿色软件,解压缩到任意本地路径即可3、Kettle 环境配置1. 安装JDK (略)2. 测试JDK 安装成功(略) 3运行 KettleWindows 下找到 $KETTLE_HOME/spoon.dat,双击运行I 二 set-pentaho-en 认bat set- pentaho-env.Snh [丄 Spoon.bats'poon.^oimmand £p oon.icoL tnnnn nnn欢迎界面如下图所示:Pentaho Data IntegrationI Avlability5,1 A QrZ|2314 =1 Jhg 打APiit 、Allriotzi 13»工=- ■绝 mEP on I □ ji-* ' nMn":ITU ra jK azcp 更1b PF SH I" w Z I -Sfi 俺 论 峠 -I JI■tzjL -Td3 0 All hrt t # 冲 Qgiw r 淖恤 Jj 疔李 if A M "AS I 貧 E 3 515- .Mi hkj^T iAAj=»4hr OH COM : IlChS L- H ^4:, T -r-w VESWI ET IE — = ir«U4n ■忻 k- biTfc.irz -sirf经: 大小: 修改【◎ p entaho4、KETTLES 件介绍与使用4.1 Kettle 使用Kettle 提供了资源库的方式来整合所有的工作,;1) 创建一个新的transformation ,点击 保存到本地路径,例如保存到D:/etltest 下,保存文件名为Trans , kettle 默认transformation 文件保存后后缀名为ktr ;2) 创建一个新的job ,点击 保存到本地路径,例如保存到D:/etltest 下,保存文件名为Job , kettle 默认job 文件保存后后缀名为kjb ;4.2组件树介绍4.2.仃ransformation 的主对象树和核心对象分别如下图: 面主櫥^ /核心饶I浏览贞主对象I 对、/核心对象 _____________|Sl ^'1卜 Q InputP S 输入」匕转换丿黒 db2excel-e DBiggC database2exceE丿□ Steps (步藝I”脚吧{;「ipt 代码“山询Script 代码2 钊 MicrosoftExcel 输出 且 datasource 氐获®:義统信息 吐获耽系统信息2 »设1变量 豊iSg 变量2丄□ Hops (行点连接)*■ datasource -> Microsoft Excel 帛…获取義统信息-> J 旳話cript 代码[(!J 卵日攵「ipt 代码*■> {^置变量(disaL "获取寮読信皂2 -> JavaScriptf^fi^4 JavaScript^® 2 —> 设嬰变呈 2 (启 □数据库分区Hhwrnas u 子服务器 Q KettleMIrSiChemasQ 輸出Q 转换 Q 应用 三流程 B 脚本e 查询S 连接e 姻仓阵Q 检验 S 统计Q Big Data 巴 Agile a 加密eG a s QaPaloOpenERP 作业批量加载 内联Q 实验 a 不推荐的 s厉史■戸柞业』C db2e)ccel 星已DE 连接b ,6作业项目► START寶转换 □魁邮件✓ On 瀏坟件到结果文件中e 子服务器STARTDUIM MV作业><转授由呂件 文件管理条1牛 脚本批豈创信Big Data XML应用 贵源/车P r 文件传输 f 严文件加匣;* t一) PaloQ Depre 匚atcd可以通过各个节点来查看。
kettle课程设计
kettle课程设计一、课程目标知识目标:1. 学生能理解Kettle的基本概念,掌握其功能特点及操作流程。
2. 学生能运用Kettle完成数据的抽取、转换和加载操作。
3. 学生能掌握Kettle中常见的数据转换组件及其使用方法。
技能目标:1. 学生能独立安装和配置Kettle软件。
2. 学生具备使用Kettle进行数据处理和分析的能力。
3. 学生能运用Kettle解决实际问题,提高数据处理效率。
情感态度价值观目标:1. 培养学生对数据处理的兴趣,激发学习动力。
2. 培养学生团队协作、共同解决问题的能力,增强合作意识。
3. 培养学生勇于探索、积极进取的精神,树立正确的数据价值观。
课程性质:本课程为实践性课程,以学生动手操作为主,结合理论知识讲解。
学生特点:学生具备一定的计算机操作基础,对数据处理有一定的了解,但Kettle使用经验较少。
教学要求:教师需关注学生个体差异,因材施教,注重培养学生的实际操作能力,提高数据处理技能。
同时,注重激发学生的学习兴趣,引导他们树立正确的数据价值观。
在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容本课程教学内容主要包括以下几部分:1. Kettle概述:介绍Kettle的基本概念、功能特点、应用场景及发展历程。
2. Kettle安装与配置:讲解Kettle软件的安装步骤、环境配置及基本操作界面。
3. 数据抽取、转换和加载:学习Kettle中ETL过程的实现方法,包括数据连接、数据抽取、数据转换和数据加载等。
4. 常见数据转换组件:介绍Kettle中常用的数据转换组件,如过滤、排序、合并、拆分、聚合等,并讲解其使用方法。
5. Kettle实战案例:结合实际案例,让学生动手操作Kettle,完成数据处理任务。
6. 课程总结与拓展:总结本课程所学内容,引导学生探索Kettle的进阶功能,激发学生的学习兴趣。
教学内容安排如下:第1周:Kettle概述及安装配置第2周:数据抽取、转换和加载基础第3周:常见数据转换组件及其使用方法第4周:Kettle实战案例分析与操作第5周:课程总结与拓展教材章节关联:第1章:Kettle概述及安装配置第2章:数据抽取、转换和加载基础第3章:Kettle数据转换组件第4章:Kettle实战案例第5章:课程总结与拓展教学内容科学系统,注重理论与实践相结合,旨在提高学生的数据处理技能和实际操作能力。
KETTLE详细设计
.KETTLE详细设计说明书V0.1变更记录1 Kettle界面介绍双击Kettle.exe或者Spoon.bat打开Kettle图形界面化如下:(图1.1)Kettle中有两类设计分别是:Transformation(转换)与Job(作业),Transformation完成针对数据的基础转换,Job则完成整个工作流的控制。
Kettle常用三大家族:Spoon、Pan、Kitchen。
Spoon:通过图形界面方式设计、运行、调试Job与Transformation。
Pan:通过脚本命令方式来运行Transformation。
Kitchen:通过脚本命令方式来运行Job,一般就是通过调用Kitchen脚本来完成定时任务。
说明:当打开Kettle时显示的是Kettle的相关版本信息与GNU相关协议说明。
(图1.2)说明:打开Kettle时弹出的窗口提示以资源库方式登录相关信息,关于乌江水电项目工程存储方式是以XML文件方式来进行存储,所以我就直接点击“没有资源库”。
图(1.3)说明:进入Kettle设计界面。
提示关于Spoon相关信息,这里直接点击“关闭”按钮。
(图1.4)说明:图片中所使用到的字母位置标识说明。
(A):Kettle所使用到的菜单栏。
(B):在使用Kettle时所涉及使用到的对象。
(C):Kettle中所有的组件。
(D):根据选择(B)或者(C)显示相应的结果。
(E):Kettle设计界面。
(图1.5)说明:文件:是对Kettle所生成的Job与Trans进行相关的操作,如:新建、打开、保存、导入、导出等相关操作。
(图1.6)说明:编辑:是对Kettle当前打开的Job与Trans进行相关的操作,如:复制、撤销、环境变量显示、资源库查看、图形界面自定义调整(颜色、字体、样式)等相关操作。
(图1.7)说明:视图:是对Kettle当前打开的Job与Trans进行放大、缩小相关操作。
(图1.8)说明:资源库:是对Kettle中所使用到的资源库进行操作,如:资源库连接、断开、当前用户编辑等操作。
KETTLE详细设计
KETTLE详细设计说明书V0.1变更记录1 Kettle界面介绍双击Kettle.exe或者Spoon.bat打开Kettle图形界面化如下:1.1)(图Kettle完成针对数据的,Transformation(转换)与Job(作业)中有两类设计分别是:Transformation则完成整个工作流的控制。
基础转换,Job。
、KitchenSpoonKettle常用三大家族:、Pan: Transformation。
Spoon通过图形界面方式设计、运行、调试Job与:。
通过脚本命令方式来运行TransformationPan:脚本来完成定时任务。
Kitchen 通过脚本命令方式来运行Job,一般就是通过调用Kitchen说明:相关协议说明。
GNU的相关版本信息与Kettle时显示的是Kettle当打开.1.2)(图关于乌江水电项目工程存Kettle时弹出的窗口提示以资源库方式登录相关信息,明:打开说。
“没有资源库”储方式是以XML文件方式来进行存储,所以我就直接点击(1.3)图按钮。
”关闭“相关信息,这里直接点击Spoon设计界面。
提示关于Kettle进入说明:图1.4)( 图片中所使用到的字母位置标识说明。
说明:所使用到的菜单栏。
(A):Kettle 时所涉及使用到的对象。
:在使用Kettle(B) Kettle中所有的组件。
:(C)显示相应的结果。
(C)或者D):根据选择(B)(设计界面。
:Kettle(E)1.5)(图说明:进行相关的操作,如:新建、打开、保存、导入、Trans与Job所生成的Kettle文件:是对.导出等相关操作。
1.6)(图说明:进行相关的操作,如:复制、撤销、环境变量显与Trans编辑:是对Kettle当前打开的Job 等相关操作。
(颜色、字体、样式)示、资源库查看、图形界面自定义调整1.7)(图说明:进行放大、缩小相关操作。
Trans与Job当前打开的Kettle视图:是对.1.8)图( 说明:中所使用到的资源库进行操作,如:资源库连接、断开、当前用户编辑Kettle资源库:是对等操作。
KETTLE详细设计说明
KETTLE详细设计说明书V0.1变更记录1 Kettle界面介绍双击Kettle.exe或者Spoon.bat打开Kettle图形界面化如下:(图1.1)Kettle中有两类设计分别是:Transformation(转换)与Job(作业),Transformation完成针对数据的基础转换,Job则完成整个工作流的控制。
Kettle常用三大家族:Spoon、Pan、Kitchen。
Spoon:通过图形界面方式设计、运行、调试Job与Transformation。
Pan:通过脚本命令方式来运行Transformation。
Kitchen:通过脚本命令方式来运行Job,一般就是通过调用Kitchen脚本来完成定时任务。
说明:当打开Kettle时显示的是Kettle的相关版本信息与GNU相关协议说明。
(图1.2)说明:打开Kettle时弹出的窗口提示以资源库方式登录相关信息,关于乌江水电项目工程存储方式是以XML文件方式来进行存储,所以我就直接点击“没有资源库”。
图(1.3)说明:进入Kettle设计界面。
提示关于Spoon相关信息,这里直接点击“关闭”按钮。
(图1.4) 说明:图片中所使用到的字母位置标识说明。
(A):Kettle所使用到的菜单栏。
(B):在使用Kettle时所涉及使用到的对象。
(C):Kettle中所有的组件。
(D):根据选择(B)或者(C)显示相应的结果。
(E):Kettle设计界面。
(图1.5)说明:文件:是对Kettle所生成的Job与Trans进行相关的操作,如:新建、打开、保存、导入、导出等相关操作。
(图1.6)说明:编辑:是对Kettle当前打开的Job与Trans进行相关的操作,如:复制、撤销、环境变量显示、资源库查看、图形界面自定义调整(颜色、字体、样式)等相关操作。
(图1.7)说明:视图:是对Kettle当前打开的Job与Trans进行放大、缩小相关操作。
(图1.8)说明:资源库:是对Kettle中所使用到的资源库进行操作,如:资源库连接、断开、当前用户编辑等操作。
2024版kettle教程学习
kettle教程学习目录•kettle概述与安装•kettle基础操作•数据抽取、清洗与加载•转换设计高级功能•作业设计高级功能•kettle实战案例分享PART01kettle概述与安装kettle简介01Kettle是一款开源的ETL工具,全称为Kettle Extraction,Transformation and Loading。
02Kettle提供了一个图形化的界面来设计ETL过程,支持多种数据源和数据目标。
03Kettle是纯Java编写,可以在Windows、Linux和Mac OS等操作系统上运行。
强大的数据转换能力Kettle 提供了丰富的数据转换组件,支持数据清洗、转换、聚合等操作。
Kettle 支持多种数据源,如关系型数据库、文件、API 等,方便用户进行数据整合。
开源性Kettle 是一款开源软件,用户可以自由使用和修改,降低了成本。
图形化界面Kettle 提供了直观的图形化界面,方便用户进行ETL 任务的设计和开发。
跨平台性Kettle 可以在多种操作系统上运行,具有良好的跨平台性。
kettle 特点与优势0102下载Kettle安装包从官方网站或开源社区下载Kettle安装包。
安装Java环境确保计算机上已经安装了Java运行环境(JRE)或Java开发工具包(JDK)。
解压安装包将下载的Kettle安装包解压到指定目录。
配置环境变量(可选)将Kettle的安装目录添加到系统的环境变量中,方便在命令行中启动Kettle。
启动Kettle双击解压后的目录中的Spoon.bat(Windows)或Spoon.sh(Linux/Mac OS)文件,启动Kettle图形化界面。
030405安装步骤与配置PART02kettle基础操作界面介绍与功能导航主界面布局菜单栏、工具栏、设计面板、属性窗口等功能导航通过菜单栏和工具栏快速访问常用功能视图切换在设计面板中切换不同视图,如设计视图、数据视图等1 2 3支持多种数据库类型,如MySQL、Oracle、SQL Server等数据源类型配置数据库连接信息,如主机名、端口号、数据库名、用户名和密码等数据源配置添加、编辑和删除数据源,方便在转换和作业中引用数据源管理数据源配置与管理转换与作业设计拖放组件在设计面板中拖放输入、输出和处理组件连接组件通过箭头连接组件,定义数据流向•配置组件属性:设置组件的特定属性,如查询语句、目标表等添加作业项在设计面板中添加作业项,如开始、结束、邮件通知等连接作业项通过箭头连接作业项,定义作业执行流程调试模式在调试模式下运行转换或作业,查看详细执行过程和结果运行模式在正常模式下运行转换或作业,进行实际数据处理PART03数据抽取、清洗与加载数据抽取方法与技巧使用Kettle的“表输入”步骤从数据库中抽取数据配置数据库连接,编写SQL查询语句,实现数据的抽取。
Kettle开发使用手册
Kettle 开发使用手册Kettle 开发使用手册2 0 1 7 年 4 月版本历史说明版本作者日期备注1.0彭伟峰2017.04.111. Kettle 介绍1.1. 什么是 KettleKettle 是纯 Java编写的、免费开源的 ETL工具,主要用于抽取 (Extraction)、转换 (Transformation)、和装载(Loading)数据。
Kettle中文名称叫水壶,该项目的主程序员 MATT希望把各种数据放到一个壶里,然后以一种指定的格式流出。
在这种思想的设计下,Kettle 广泛用于不同数据库之间的数据抽取,例如Mysql 数据库的数据传到 Oracle ,Oracle 数据库的数据传到 Greenplum数据库。
1.2. Kettle的安装Kettle 工具是不需要安装的,直接网上下载解压就可以运行了。
不过它依赖于Java,需要本地有 JDK环境,如果是安装 4.2 或 5.4 版本, JDK需要 1.5 以上的版本,推荐 1.6 或 1.7 的 JDK。
运行 Kettle直接双击里面的批处理文件spoon.bat 就行了,如图 1.1 所示:图1.12. Kettle 脚本开发2.1. 建立资源库( repository 仓库)Repository仓库是用来存储所有kettle文件的文件系统,由于数据交换平台服务器管理 kettle文件也是用Repository仓库,因此我们这边本地的kettle开发环境也是要用到该资源库。
建立资源库的方式是工具-->资源库- ->连接资源库,这时候弹出一个窗口,我们点击右上角的“+”号,跟着点击下面的kettlefile repository选项,按确定,如图 2.1 所示:图2.1跟着在右上角选择一个目录,建议在kettle路径下新建repository文件夹,再选择这个文件夹作为根目录,名称和描述可以任意写,如图 2.2 所示:图2.2建完后会 kettle工具会自动连接到repository资源库,每次打开kettle 也会弹出一个窗口让你先连接到资源库。
Kettle使用+说明
2014/10/06
设置和坑[1]
• 需要配置pentaho-big-data-plugin 目录中的plugin.properties文件
▫ 把active.hadoop.configuration = 的值改成 hadp20
• mysql貌似连不上,需要把mysql-connector-java-***-bin.jar 放到lib目录中
Transformation举例二:支持hive表操作
• 支持Hive的表操作,结合使用hadoop file output 可以支持从关系型 数据库向hive表中导入数据
Transformation举例三:数据同步
Hyperbase 外表
改表的列的 顺序和类型
• 支持数据更新和同步
▫ 两张表的列的顺序和数据格式必须一模一样 ▫ 注意hyperbase id 为字典序,但RDB id则不一定
combined with transactions: This status table holds for all jobs/transformations all tables that need to be in a consistent state. For all tables the last processed keys (source/target) and the status is saved. Some tables might need compound keys depending on the ER-design. It is also possible to combine this approach with the own Kettle transformation log tables and the Dates and Dependencies functionality. There is an extended example in the Pentaho Data Integration for Database Developers (PDI2000C) course in module ETL patterns (Patterns: Batching, Transaction V - Status Table) • Snapshot-Based CDC • When no suitable time stamps or IDs are available or when some records might have been updated, you need the snapshot-based approach. Store a copy of the loaded data (in a table or even a file) and compare record by record. It is possible to create a SQL statement that queries the delta or use a transformation. Kettle supports this very comfortable by the Merge rows (diff) step. There is an extended example in the Pentaho Data Integration for Database Developers (PDI2000C) course in module ETL patterns (Pattern: Change Data Capture) • Trigger-Based CDC • Kettle does not create triggers in a database system and some (or most?) people don't like the trigger-based CDC approach because it introduces a further layer of complexity into another system. Over time it is hard to maintain and keep in sync with the overall architecture. But at the end, it depends on the use case and might be needed in some projects. There are two main options: • Create a trigger and write the changed data to a separate table • This table has a time stamp or sequenced ID that can be used to select the changed data rows. • Create a trigger and call Kettle directly via the Kettle API • This scenario might be needed in real-time CDC needs, so a Kettle transformation might be called directly from the trigger. Some databases support Java calls from a trigger (e.g. PL/Java for PostgreSQL or Oracle, see References below). • If you are using Hibernate to communicate with the database, you can use Hibernate event listeners as triggers (package summary). That way it would work with every database when you use standard SQL queries or HQL queries in the triggers. • Database Log-Based CDC • Some databases allow own CDC logs that can be analyzed. • Real-time CDC • So in case you need Real-time CDC, some of the above solutions will solve this need. Depending on the timing (how real-time or near-time) your needs are, you may choose the best suitable option. The trigger based call of Kettle is the most real-time solution. It is also possible to combine all of the above solutions with a continuously executed transformation (e.g. every 15 minutes) that collects the changed data.
etl工具kettle用户手册及kettle.x使用步骤带案例超详细版
E T L工具K e t t l e用户手册之Spoon 2.5.0用户手册Spoon 2.5.0用户手册 (1)1、Spoon介绍 (14)1、1 什么是Spoon (14)1、2 安装 (14)1、3 运行Spoon (14)1、4 资源库 (14)1、5 资源库自动登录 (15)1、6 定义 (15)1、6、1 转换 (15)1、6、2 任务 (16)1、7 工具栏 (17)1、8 选项 (17)1、8、1 General标签 (18)1、8、2 Look Feel标签 (19)1、9 搜索元数据 (19)1、10设置环境变量 (20)2、创建一个转换或任务(Creating a Transformation or Job) (21)3、数据库连接(Database Connections) (21)3、1 描述 (21)3、2 设置窗口 (22)3、3 选项 (22)3、4 数据库用法 (22)4、SQL编辑器(SQL Editor) (23)4、1 描述 (23)4、2 屏幕截图 (23)4、3 局限性 (24)5、数据库浏览器(Database Explorer) (24)5、1 屏幕截图 (24)5、2 描述 (24)6、节点连接(Hops) (25)6、1 描述 (25)6、1、1 转换连接 (25)6、2 屏幕截图 (25)6、3 创建一个连接 (26)6、4 拆分一个连接 (26)6、5 转换连接颜色 (26)7、变量(Variables) (27)7、1 变量使用 (27)7、2 变量范围 (27)7、2、1 环境变量 (27)7、2、2 Kettle变量 (27)7、2、3 内部变量 (27)8、转换设置(Transformation Settings) (28)8、1 描述 (28)8、2 屏幕截图 (29)8、3 选项 (32)8、4 其它 (33)9、转换步骤(Transformation steps) (33)9、1 描述 (33)9、2 运行步骤的多个副本 (33)9、3 分发或者复制 (35)9、4 常用错误处理 (35)9、5 Apache虚拟文件系统(VFS)支持 (37)9、6 转换步骤类型 (39)9、6、1 文本文件输入(Text Input) (39)9、6、1、1 屏幕截图 (39)9、6、1、2 图标 (41)9、6、1、3 常用描述 (42)9、6、1、4 选项 (42)9、6、1、5 格式化 (47)9、6、1、6 其它 (48)9、6、2 表输入(Table Input) (49)9、6、2、1 屏幕截图 (49)9、6、2、2 图标 (49)9、6、2、3 常用描述 (49)9、6、2、4 选项 (50)9、6、2、5 示例 (50)9、6、2、6 其它 (51)9、6、3 获取系统信息(Get System Info) (51)9、6、3、1 屏幕截图 (51)9、6、3、2 图标 (52)9、6、3、3 常用描述 (52)9、6、3、4 选项 (53)9、6、3、5 用法 (53)9、6、4 生成行(Generate Rows) (54)9、6、4、2 图标 (54)9、6、4、3 常用描述 (55)9、6、4、4 选项 (55)9、6、5 文件反序列化(De-serialize from file)(原来名称为Cube Input) (55)9、6、5、1 屏幕截图 (55)9、6、5、2 图标 (55)9、6、5、3 常用描述 (55)9、6、6 XBase输入(XBase input) (56)9、6、6、1 屏幕截图 (56)9、6、6、2 图标 (56)9、6、6、3 常用描述 (56)9、6、6、4 选项 (56)9、6、7 Excel输入(Excel Input) (57)9、6、7、1 屏幕截图 (57)9、6、7、2 图标 (59)9、6、7、3 常用描述 (59)9、6、7、4 选项 (59)9、6、8 XML输入(XML input) (60)9、6、8、1 屏幕截图 (60)9、6、8、2 图标 (61)9、6、8、3 常用描述 (61)9、6、8、4 选项 (62)9、6、9 获取文件名(Get File Names) (63)9、6、9、1 屏幕截图 (63)9、6、9、2 图标 (63)9、6、9、3 常用描述 (63)9、6、10 文本文件输出(Text File Output) (64)9、6、10、1 屏幕截图 (64)9、6、10、2 图标 (65)9、6、10、3 常用描述 (65)9、6、11 表输出(Table output) (67)9、6、11、1 屏幕截图 (67)9、6、11、2 图标 (67)9、6、11、3 常用描述 (67)9、6、11、4 选项 (68)9、6、11、5 其它 (68)9、6、12 插入/更新(Insert/Update) (69)9、6、12、1 屏幕截图 (69)9、6、12、2 图标 (69)9、6、12、3 常用描述 (69)9、6、12、4 选项 (70)9、6、12、5 其它 (70)9、6、13 更新(Update) (71)9、6、13、2 图标 (71)9、6、13、3 常用描述 (71)9、6、14 删除(Delete) (72)9、6、14、1 屏幕截图 (72)9、6、14、2 图标 (72)9、6、14、3 常用描述 (72)9、6、15 序列化到文件(Serialize to file)(以前是Cube Output) (73)9、6、15、1 屏幕截图 (73)9、6、15、2 图标 (73)9、6、15、3 常用描述 (73)9、6、16 XML输出(XML output) (74)9、6、16、1 屏幕截图 (74)9、6、16、2 图标 (75)9、6、16、3 常用描述 (75)9、6、16、4 选项 (75)9、6、17 Excel输出(Excel Output) (76)9、6、17、1 屏幕截图 (76)9、6、17、2 图标 (78)9、6、17、3 常用描述 (78)9、6、17、4 选项 (78)9、6、18 Access输出(Microsoft Access Output) (79)9、6、18、1 屏幕截图 (79)9、6、18、2 图标 (79)9、6、18、3 常用描述 (79)9、6、18、4 选项 (79)9、6、19 数据库查询(Database lookup) (80)9、6、19、1 屏幕截图 (80)9、6、19、2 图标 (80)9、6、19、3 常用描述 (80)9、6、19、4 选项 (81)9、6、20 流查询(Stream lookup) (81)9、6、20、1 屏幕截图 (81)9、6、20、2 图标 (81)9、6、20、3 常用描述 (82)9、6、20、4 选项 (82)9、6、20、5 其它 (82)9、6、21 调用数据库存储过程(Call DB Procedure) (83)9、6、21、1 屏幕截图 (83)9、6、21、2 图标 (83)9、6、21、3 常用描述 (83)9、6、21、4 选项 (83)9、6、21、5 其它 (84)9、6、22 HTTP客户端(HTTP Cient) (84)9、6、22、2 图标 (84)9、6、22、3 常用描述 (84)9、6、22、4 选项 (85)9、6、23 字段选择(Select values) (85)9、6、23、1 屏幕截图 (85)9、6、23、2 图标 (87)9、6、23、3 常用描述 (87)9、6、23、4 选项 (87)9、6、24 过滤行(Filter rows) (88)9、6、24、1 屏幕截图 (88)9、6、24、2 图标 (88)9、6、24、3 常用描述 (88)9、6、24、4 选项 (88)9、6、25 行排序(Sort rows) (89)9、6、25、1 屏幕截图 (89)9、6、25、2 图标 (89)9、6、25、3 常用描述 (89)9、6、25、4 选项 (89)9、6、25、5 其它 (90)9、6、26 添加序列(Add sequence) (90)9、6、26、1 屏幕截图 (90)9、6、26、2 图标 (90)9、6、26、3 常用描述 (90)9、6、26、4 选项 (91)9、6、27 空操作-什么都不做(Dummy-do nothing) (91)9、6、27、1 屏幕截图 (91)9、6、27、2 图标 (91)9、6、27、3 常用描述 (91)9、6、27、4 选项 (92)9、6、28 行转列(Row Normaliser) (93)9、6、28、1 屏幕截图 (93)9、6、28、2 图标 (93)9、6、28、3 常用描述 (93)9、6、28、4 选项 (94)9、6、28、5 其它 (94)9、6、29 拆分字段(Split Fields) (95)9、6、29、1 屏幕截图 (95)9、6、29、2 图标 (95)9、6、29、3 常用描述 (95)9、6、29、4 选项 (95)9、6、30 去除重复记录(Unique rows) (96)9、6、30、1 屏幕截图 (96)9、6、30、2 图标 (96)9、6、30、4 选项 (97)9、6、30、5 其它 (97)9、6、31 分组(Group By) (98)9、6、31、1 屏幕截图 (98)9、6、31、2 图标 (98)9、6、31、3 常用描述 (98)9、6、31、4 选项 (99)9、6、32 设置为空值(Null if) (99)9、6、32、1 屏幕截图 (99)9、6、32、2 图标 (99)9、6、32、3 常用描述 (100)9、6、33 计算器(Calculator) (100)9、6、33、1 屏幕截图 (100)9、6、33、2 图标 (100)9、6、33、3 常用描述 (101)9、6、33、4 功能列表 (101)9、6、34增加XML(XML Add) (102)9、6、34、1 屏幕截图 (102)9、6、34、2 图标 (102)9、6、34、3 常用描述 (102)9、6、34、4 选项 (103)9、6、35增加常量(Add constants) (103)9、6、35、1 屏幕截图 (103)9、6、35、2 图标 (103)9、6、35、3 常用描述和使用 (104)9、6、36行转列(Row Denormaliser) (104)9、6、36、1 屏幕截图 (104)9、6、36、2 图标 (104)9、6、36、3 常用描述 (105)9、6、36、4 选项 (105)9、6、37行扁平化(Flattener) (105)9、6、37、1 屏幕截图 (105)9、6、37、2 图标 (105)9、6、37、3 常用描述 (105)9、6、37、4 选项 (106)9、6、37、5 示例 (106)9、6、38值映射(Value Mapper) (107)9、6、38、1 屏幕截图 (107)9、6、38、2 图标 (107)9、6、38、3 常用描述 (107)9、6、39被冻结的步骤(Blocking step) (108)9、6、39、1 屏幕截图 (108)9、6、39、2 图标 (108)9、6、40记录关联(笛卡尔输出)(Join Rows-Cartesian Product) (109)9、6、40、1 屏幕截图 (109)9、6、40、2 图标 (109)9、6、40、3 常用描述 (109)9、6、40、4 选项 (110)9、6、41数据库连接(Database Join) (110)9、6、41、1 屏幕截图 (110)9、6、41、2 图标 (111)9、6、41、3 常用描述 (111)9、6、41、4 选项 (111)9、6、42合并记录(Merge rows) (112)9、6、42、1 屏幕截图 (112)9、6、42、2 图标 (112)9、6、42、3 常用描述 (112)9、6、43 存储合并(Stored Merge) (113)9、6、43、1 屏幕截图 (113)9、6、43、2 图标 (113)9、6、43、3 常用描述 (113)9、6、44 合并连接(Merge Join) (114)9、6、44、1 屏幕截图 (114)9、6、44、2 图标 (114)9、6、44、3 常用描述和使用 (114)9、6、44、4 选项 (114)9、6、45 Java Script值(Java Script Value) (115)9、6、45、1 屏幕截图 (115)9、6、45、2 图标 (115)9、6、45、3 常用描述 (115)9、6、45、4 选项 (115)9、6、45、5 其它 (116)9、6、45、6 值函数 (116)9、6、45、7 JavaScript示例 (120)9、6、45、7、1 回忆先前的行 (120)9、6、45、7、2 设置地址名称到大写 (120)9、6、45、7、3 从日期字段提取信息 (120)9、6、46改进的Java Script值(Modified Java Script Value) (121)9、6、46、1 屏幕截图 (121)9、6、46、2 图标 (121)9、6、46、3 常用描述 (121)9、6、46、4 Java Script函数 (121)9、6、46、5 Java Script (122)9、6、46、6 字段 (122)9、6、46、7 其它 (122)9、6、47执行SQL语句(Execute SQL script) (123)9、6、47、2 图标 (123)9、6、47、3 常用描述 (123)9、6、48 维度更新/查询(Dimension lookup/update) (126)9、6、48、1 屏幕截图 (126)9、6、48、2 图标 (126)9、6、49 联合更新/查询(Combination lookup/update) (127)9、6、49、1 屏幕截图 (127)9、6、49、2 图标 (127)9、6、49、3 常用描述 (127)9、6、50 映射(Mapping) (128)9、6、50、1 屏幕截图 (128)9、6、50、2 图标 (128)9、6、50、3 常用描述和使用 (128)9、6、51 从结果获取记录(Get rows from result) (129)9、6、51、1 屏幕截图 (129)9、6、51、2 图标 (129)9、6、51、3 常用描述 (129)9、6、52 复制记录到结果(Copy rows to result) (129)9、6、52、1 屏幕截图 (129)9、6、52、2 图标 (130)9、6、52、3 常用描述 (130)9、6、53 设置变量(Set Variable) (130)9、6、53、1 屏幕截图 (130)9、6、53、2 图标 (130)9、6、53、3 常用描述 (131)9、6、53、4 变量使用 (131)9、6、54 获取变量(Get Variable) (131)9、6、54、1 屏幕截图 (131)9、6、54、2 图标 (132)9、6、54、3 常用描述 (132)9、6、55 从以前的结果获取文件(Get files from result) (132)9、6、55、1 屏幕截图 (132)9、6、55、2 图标 (132)9、6、55、3 常用描述 (132)9、6、56 复制文件名到结果(Set files in result) (133)9、6、56、1 屏幕截图 (133)9、6、56、2 图标 (133)9、6、56、3 常用描述 (133)9、6、57 记录注射器(Injector) (134)9、6、57、1 屏幕截图 (134)9、6、57、2 图标 (134)9、6、57、3 常用描述 (134)9、6、58 套接字读入器(Socket Reader) (135)9、6、58、2 图标 (135)9、6、58、3 常用描述和使用 (135)9、6、59 套接字输写器(Socket Writer) (135)9、6、59、1 屏幕截图 (135)9、6、59、2 图标 (136)9、6、59、3 常用描述和使用 (136)9、6、60聚合行(Aggregate Rows) (136)9、6、60、1 屏幕截图 (136)9、6、60、2 图标 (136)9、6、60、3 常用描述 (136)9、6、60、4 选项 (137)9、6、61流XML输入(Streaming XML Input) (137)9、6、61、1 屏幕截图 (137)9、6、61、2 图标 (138)9、6、61、3 常用描述 (139)9、6、61、4 选项 (139)9、6、61、5 完整的示例 (140)9、6、62中止(Abort) (142)9、6、62、1 屏幕截图 (142)9、6、62、2 图标 (142)9、6、62、3 常用描述 (143)9、6、62、4 选项 (143)9、6、63Oracle批量装载(Oracle bulk loader) (144)9、6、63、1 屏幕截图 (144)9、6、63、2 图标 (144)9、6、63、3 常用描述 (145)9、6、63、4 选项 (145)10、任务设置(Job Settings) (145)10、1 描述 (145)10、2 屏幕截图 (146)10、3 选项 (146)10、4 其它 (146)11、任务条目(Job Entries) (147)11、1 描述 (147)11、2 任务条目类型 (147)11、2、1特殊的任务条目 (147)11、2、1、1 屏幕截图 (147)11、2、1、2 图标 (147)11、2、1、3 常用描述 (148)11、2、1、3、1 启动 (148)11、2、1、3、2 Dummy (148)11、2、1、3、3 OK (148)11、2、1、3、4 ERROR (148)11、2、2、1 屏幕截图 (149)11、2、2、2 图标 (149)11、2、2、3 常用描述 (149)11、2、2、4 选项 (149)11、2、3 任务 (151)11、2、3、1 屏幕截图 (151)11、2、3、2 图标 (151)11、2、3、3 常用描述 (151)11、2、3、4 选项 (151)11、2、4 Shell (152)11、2、4、1 屏幕截图 (152)11、2、4、2 图标 (153)11、2、4、3 常用描述 (153)11、2、4、4 选项 (153)11、2、5 Mail (154)11、2、5、1 屏幕截图 (154)11、2、5、2 图标 (154)11、2、5、3 常用描述 (155)11、2、5、4 选项 (155)11、2、6 SQL (156)11、2、6、1 屏幕截图 (156)11、2、6、2 图标 (156)11、2、6、3 常用描述 (156)11、2、6、4 选项 (156)11、2、7 FTP (157)11、2、7、1 屏幕截图 (157)11、2、7、2 图标 (157)11、2、7、3 常用描述 (157)11、2、7、4 选项 (157)11、2、8 Table Exists (158)11、2、8、1 屏幕截图 (158)11、2、8、2 图标 (159)11、2、8、3 常用描述 (159)11、2、8、4 选项 (159)11、2、9 File Exists (159)11、2、9、1 屏幕截图 (159)11、2、9、2 图标 (159)11、2、9、3 常用描述 (159)11、2、9、4 选项 (160)11、2、10 Evaluation(javascript) (160)11、2、10、1 屏幕截图 (160)11、2、10、2 图标 (160)11、2、10、3 常用描述 (160)11、2、11 SFTP (161)11、2、11、1 屏幕截图 (161)11、2、11、2 图标 (161)11、2、11、3 常用描述 (162)11、2、11、4 选项 (162)11、2、12 HTTP (163)11、2、12、1 屏幕截图 (163)11、2、12、2 图标 (163)11、2、12、3 常用描述 (163)11、2、12、4 选项 (163)11、2、13 Create a file (164)11、2、13、1 屏幕截图 (164)11、2、13、2 图标 (165)11、2、13、3 常用描述 (165)11、2、13、4 选项 (165)11、2、13、5 其它 (165)11、2、14 Delete a file (165)11、2、14、1 屏幕截图 (165)11、2、14、2 图标 (165)11、2、14、3 常用描述 (166)11、2、14、4 选项 (166)11、2、14、5 其它 (166)11、2、15 Wait a file (166)11、2、15、1 屏幕截图 (166)11、2、15、2 图标 (166)11、2、15、3 常用描述 (167)11、2、15、4 选项 (167)11、2、15、5 其它 (167)11、2、16 File compare (167)11、2、16、1 屏幕截图 (167)11、2、16、2 图标 (168)11、2、16、3 常用描述 (168)11、2、16、4 选项 (168)11、2、16、5 其它 (168)11、2、17 Put files with secureFTP (169)11、2、17、1 屏幕截图 (169)11、2、17、2 图标 (169)11、2、17、3 常用描述 (169)11、2、17、4 选项 (169)11、2、18 Ping a host (170)11、2、18、1 屏幕截图 (170)11、2、18、2 图标 (170)11、2、18、3 常用描述 (170)11、2、19 Wait for (171)11、2、19、1 屏幕截图 (171)11、2、19、2 图标 (171)11、2、19、3 常用描述 (171)11、2、19、4 选项 (171)11、2、20 Display Msgbox info (172)11、2、20、1 屏幕截图 (172)11、2、20、2 图标 (172)11、2、20、3 常用描述 (172)11、2、20、4 选项 (172)11、2、21 Abort job (173)11、2、21、1 屏幕截图 (173)11、2、21、2 图标 (173)11、2、21、3 常用描述 (173)11、2、21、4 选项 (173)11、2、22 XSL transformation (174)11、2、22、1 屏幕截图 (174)11、2、22、2 图标 (174)11、2、22、3 常用描述 (174)11、2、22、4 选项 (174)11、2、23 Zip files (175)11、2、23、1 屏幕截图 (175)11、2、23、2 图标 (175)11、2、23、3 常用描述 (175)11、2、23、4 选项 (175)12、图形界面(Graphical View) (176)12、1 描述 (176)12、2 添加步骤或者任务条目 (176)12、2、1 拖放创建步骤 (176)12、2、2 从步骤类型树创建步骤 (177)12、2、3 在你想要的位置创建步骤 (177)12、3 隐藏步骤 (177)12、4 转换步骤选项(右键上下文菜单) (177)12、4、1 编辑步骤 (177)12、4、2 编辑步骤描述 (177)12、4、3 数据迁移 (177)12、4、4 复制 (177)12、4、5 复制步骤 (178)12、4、6 删除步骤 (178)12、4、7 显示输入字段 (178)12、4、8 显示输出字段 (178)12、5 任务条目选项(右键上下文菜单) (178)12、5、1 打开转换/任务 (178)12、5、3 编辑任务入口描述 (178)12、5、4 复制任务入口 (178)12、5、5 复制选择的任务入口到剪贴板 (178)12、5、6 排列/分布 (179)12、5、7 拆开节点 (179)12、5、8 删除所有任务入口的副本 (179)12、6 添加节点连接 (179)12、7 运行转换 (179)12、8 屏幕截图 (179)12、9 执行选项 (180)12、9、1 在哪里执行 (180)12、9、2 预览 (180)12、9、3 使用安全模式 (180)12、9、4 日志级别 (180)12、9、5 重放日期 (180)12、9、6 参数 (180)12、9、7 变量 (180)12、10 设置远程或者从属服务器 (181)12、10、1 概述 (181)12、10、2 屏幕截图 (181)13、日志(Logging) (181)13、1 日志描述 (181)13、2 屏幕截图 (182)13、3 日志网格 (182)13、3、1 转换日志网格 (182)13、3、2 任务日志网格 (183)13、4 按钮 (183)13、4、1 转换按钮 (183)13、4、1、1 开始转换 (183)13、4、1、2 预览 (183)13、4、1、3 显示错误行 (183)13、4、1、4 清除日志 (184)13、4、1、5 日志设置 (184)13、4、1、6 仅仅显示活动的步骤 (184)13、4、2 任务按钮 (184)13、4、2、1 启动任务 (184)13、4、2、2 停止任务 (185)13、4、2、3 刷新日志 (185)13、4、2、4 清除日志 (185)13、4、2、5 日志设置 (185)13、4、2、6 自动刷新 (186)14、网格(Grids) (186)14、1 描述 (186)14、2 功能 (186)14、3 导航 (186)15、资源库浏览器(Repository Explorer) (187)15、1 描述 (187)15、2 屏幕截图 (187)15、3 右键单击功能 (187)15、4 备份/资源库 (188)16、共享对象(Share objects) (188)1、Spoon介绍1、1 什么是SpoonKettle是”Kettle E.T.T.L. Envirnonment”只取首字母的缩写。
2024版kettle使用教程(超详细)
分布式计算原理
阐述Kettle分布式计算的原理, 如何利用集群资源进行并行处理 和任务调度。
01 02 03 04
集群配置与部署
详细讲解Kettle集群的配置步骤, 包括环境准备、节点配置、网络 设置等。
集群监控与管理
介绍Kettle提供的集群监控和管 理工具,方便用户实时了解集群 状态和作业执行情况。
03
实战演练
以一个具体的实时数据处理任务为例, 介绍如何使用Kettle设计实时数据处理 流程。
案例四:Kettle在数据挖掘中应用
数据挖掘概念介绍
01
数据挖掘是指从大量数据中提取出有用的信息和知识的
过程,包括分类、聚类、关联规则挖掘等任务。
Kettle在数据挖掘中的应用
02
Kettle提供了丰富的数据处理和转换功能,可以方便地
Chapter
案例一:ETL过程自动化实现
ETL概念介绍
ETL即Extract, Transform, Load,是数据仓 库技术中重要环节,包括数据抽取、清洗、转 换和加载等步骤。
Kettle实现ETL过程
通过Kettle的图形化界面,可以方便地设计ETL流程, 实现数据的自动化抽取、转换和加载。
作业项配置
对作业项进行详细配置,包括数据源、目标库、 字段映射等。
作业项管理
支持作业项的复制、粘贴、删除等操作,方便快速构建作业。
定时任务设置与执行
定时任务设置
支持基于Cron表达式的定时任务设置,实现 周期性自动执行。
立即执行
支持手动触发作业执行,满足即时数据处理 需求。
执行日志查看
Kettle使用范例
Kettle使用范例1.错误处理在转换步骤的过程中,当某个步骤发生错误时可能要进行额外的步骤处理。
因此,在设置时就要求为步骤添加错误处理。
以下面的流程为例:该流程为将源表的数据同步到目标表中,在目标表中人为的设置某个字段的长度小于源表,让其能在处理过程中会报出异常。
为了可视化处理结果,将同步的结果输出到XML文件中。
选中“Target Table”步骤,点击鼠标右键,然后选择“Define error handling…”菜单项,将会弹出设置对话框。
在“Target step”中选择后续处理步骤即可。
在各个fieldname填上字段的名字,将会在结果集中多出相应的字段,以便后续步骤能读出相应的错误信息。
例如界面上的“ErrorDesc”字段,将用于保存错误信息。
以上的数据处理流程处理结束之后,“Success XML Output”步骤生成的XML文件内容为所有同步成功的数据;“Error XML Output”步骤生成的XML文件内容为所有同步错误的数据。
2.字典翻译2.1.单选字典翻译单选字典翻译要使用到“Stream lookup/流查询”步骤,分别要从业务表和字典表中抽取出数据。
“Query AJXX”步骤负责从业务表中抽取出数据。
“Query AJLX Dictionary”步骤负责从字典表中抽取出字典数据。
“Transform AJLX”步骤负责翻译“ajlx”字段的字典值。
由于使用这种方式翻译单选字段时,要多查询一个字典表,因此最好控制字典表的数据量,以免影响性能。
2.2.多选字典翻译由于“Stream lookup”只能实现单值的数据查询,无法实现像多选字典这类多值的数据查询,因此“Stream lookup”步骤无法实现多选字典字段的翻译。
多选字典的翻译,只能通过采用调用存储过程的方式实现,这就要使用到“Call DB Procedure”。
由于“Call DB Procedure”步骤在调用存储过程或是函数时,参数设置不能使用常量,只能调用数据流中的字段值。
2024版搞定Kettle详细教程
学员心得体会分享
学员A
通过本次学习,我深入了解了Kettle工具的使用方法和技巧,掌握了ETL流程中的各个环节, 对数据处理有了更深入的理解。
学员B
本次课程让我对Kettle有了全新的认识,之前在使用过程中遇到的一些问题也得到了很好的 解决,感谢老师的耐心讲解。
编辑ETL流程。
布局调整
用户可自由调整各面板的大小 和位置,以满足个性化需求。
折叠与展开
支持折叠或展开组件面板和属 性面板,以节省屏幕空间。
快捷键设置及运用场景
01
快捷键设置
用户可在Kettle中进行自定义快捷键设置,提高操作效率。
02
常用快捷键
如Ctrl+S保存、Ctrl+R运行、Ctrl+Z撤销等,方便用户快速执行常用操
资源隔离与限制
对任务进行资源隔离和限制,防止某 个任务占用过多资源导致其他任务无 法执行。
监控指标设置及报警机制构建
监控指标
设置关键监控指标,如任务执行状态、执行时长、数据质量等,以 实时掌握任务运行情况。
报警机制
构建完善的报警机制,当监控指标异常时及时发出报警通知,以便 相关人员第一时间介入处理。
问题2
Kettle界面显示异常或操作不流畅。
解决方案
调整系统分辨率或缩放设置;关闭其 他占用资源较多的程序;升级电脑硬 件配置。
问题3
在使用Kettle进行数据转换时出现错 误。
解决方案
检查数据源连接是否正常;检查转换 步骤是否正确配置;查看Kettle日志, 定位错误原因并进行修复。
Kettle4.2源码分析第一讲--Kettle简介
Kettle4.2源码分析第⼀讲--Kettle简介Pentaho Data Integration(PDI)简介1. PDI结构简介图 1‑1 PDI核⼼组件 Spoon是构建ETL Jobs和Transformations的⼯具。
Spoon可以以拖拽的⽅式图形化设计,能够通过spoon调⽤专⽤的数据集成引擎或者集群。
Data Integration Server是⼀个专⽤的ETL Server,它的主要功能有:功能描述执⾏通过Pentaho Data Integration引擎执⾏ETL的作业或转换安全性管理⽤户、⾓⾊或集成的安全性内容管理提供⼀个集中的资源库,⽤来管理ETL的作业和转换。
资源库包含所有内容和特征的历史版本。
时序安排在spoon设计者环境中提供管理Data Integration Server上的活动的时序和监控的服务 Enterprise Console提供了⼀个⼩型的客户端,⽤于管理Pentaho Data Integration企业版的部署,包括企业版本的证书管理、监控和控制远程Pentaho Data Integration服务器上的活动、分析已登记的作业和转换的动态绩效。
2. PDI的组成部分名称描述Spoon通过图形接⼝,⽤于编辑作业和转换的桌⾯应⽤。
Pan⼀个独⽴的命令⾏程序,⽤于执⾏由Spoon编辑的转换和作业。
Kitchen⼀个独⽴的命令⾏程序,⽤于执⾏由Spoon编辑的作业。
Carte Carte是⼀个轻量级的Web容器,⽤于建⽴专⽤、远程的ETLServer。
3. PDI的相关术语和基本概念图 1‑2 PDI概念模型图 要了解Kettle的执⾏分为两个层次:Job和Transformation。
两个层次的最主要区别在于数据传递和运⾏⽅式。
3.1. Transformation(转换) Transformation(转换)是由⼀系列被称之为step(步骤)的逻辑⼯作的⽹络。
kettle产品详细介绍()
晴天云目录Kettle产品详细介绍..........................................................................................................................Kettle产品详细介绍..........................................................................................................................1.Kettle简介 ......................................................................................................................................2.Kettle 的安装 .................................................................................................................................3.Kettle 的详细介绍..........................................................................................................................3.1Kettle 资源库管理............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................3.2菜单栏介绍 ......................................................................................................................................................................................................................................................................3.2.2 编辑 ..........................................................................................................................2.2.3 视图 ..........................................................................................................................2.2.4 资源库 ......................................................................................................................3.2.5 转换 ..........................................................................................................................3.2.6 作业 ..........................................................................................................................3.2.7 向导 ..........................................................................................................................3.2.8 帮助 ..........................................................................................................................3.3工具栏介绍 ..........................................................................................................................3.3.1 transformation的工具栏..........................................................................................3.3.2 Jobs工具栏 ...............................................................................................................3.4主对象树介绍 ......................................................................................................................的主对象树 ........................................................................................................................主对象树 ............................................................................................................................3.5核心对象介绍 ......................................................................................................................核心对象 ............................................................................................................................核心对象 ............................................................................................................................3.6 transformation功能.............................................................................................................3.7 Jobs功能 ..............................................................................................................................4 Kettle 优点......................................................................................................................................5 Kettle 缺点......................................................................................................................................Kettle产品详细介绍1.Kettle简介简单地说,Kettle 就是国外一个开源的ETL工具。
Kettle解决方案:第二章Kettle基本概念
Kettle解决⽅案:第⼆章Kettle基本概念2概述设计模块最主要的操作分为: 转换和作业选择转换和作业后就可以选择对应主对象树和核⼼对象主对象树⼤同⼩异核⼼对象是不同的⽐如转换需要⽤到的CSV表输⼊, 表输⼊等都在这⾥可以选择⽽作业的核⼼对象是:2.1 转换转换是ETL解决⽅案中最主要的部分, 它处理抽取、转换、加载各阶段各中对数据⾏的操作。
转换1/N个步骤。
如图, 下⾯是⼀个转换的过程图中每个框都是⼀个步骤(step),⽽连接框的线就是所谓的跳(hop). 跳定义了⼀个单向通道, 允许数据由⼀个通道向另⼀个通道移动。
在Kettle中数据的单位是⾏。
步骤步骤是转换的基本组成部分(图中的框框) 它有以下关键属性:1 每个步骤都有⼀个名字,在转换范围内唯⼀2 每个步骤都会读,写数据⾏ (唯⼀的例外是⽣成记录的步骤)3 步骤将数据写到与之相连的⼀个或多个输出跳, 再传送到跳的另⼀端的步骤. 对另⼀端步骤来说, 这个跳就是⼀个输⼊跳, 步骤通过输⼊跳接受数据4 ⼤多数的步骤都可以有多个输出跳.【⼀个步骤的数据发送(输出)可以设置为轮流发送和复制发送。
轮流发送是将数据⾏依次发给每⼀个输出跳(每个输出获得的输出合起来才是完整数据),复制发送是将全部数据发给所有输出跳(每个输出都⼀样,是全部的数据)。
】在创建跳的时候可以选择:5 运⾏转换时,⼀个线程运⾏⼀个步骤和步骤的多份copy,所有步骤的线程⼏乎同时运⾏,数据⾏连续地流过步骤之间的跳。
除了上⾯标准的属性,具体每个步骤根据其类型还有不同的区别。
不再赘述。
转换的跳跳(hop)就是步骤之间带箭头的连线,定义了步骤之间的数据通路。
跳实际是两个步骤之间被称为⾏集的数据⾏缓存。
当⾏集满了,向⾏集写数据的步骤将停⽌写⼊,知道⾏集⾥⼜有了空间。
当⾏集空了,从⾏集读取数据的步骤停⽌读取,直到⾏集⾥有了可读的数据⾏。
注意,跳在转换⾥不能循环。
并⾏跳的这种基于⾏集缓存的规则允许每个步骤都由⼀个独⽴的线程运⾏,这样并发程度最⾼。
kettle的配置
kettle的配置采集转换引擎实施⽂档刘从云⼀、Kettle的资源数据库1、解压缩(Kettle)pdi-ce-3.2.0-stable.zip⾄采集机。
2、设置系统环境变量KETTLE_HOME,右键点击“我的电脑”→“属性”→“⾼级”→在“系统变量”处点击“新建”,分别输⼊变量名及值:KETTLE_HOME D:\Program Files\(Kettle)pdi-ce-3.2.0-stable\data-integration(Kettle 的解压路径,直到Kettle.exe所在⽬录)PATH% KETTLE_HOME%;3、替换%KETTLE_HOME%\.kettle\kettle.properties⽂件, 修改该⽂件⾥的各数据源及风控⽬标数据库的连接字符串信息,kettle.properties的配置如下所⽰:数据源配置格式:LOCALFAHOST=192.168.16.10 Host NameLOCALFADA TABASE=feappaix Database NameLOCALFAPORT=52000 PortLOCALFAUSER=risk User NameLOCALFAPSW=risk Password风控⽬标库,转换⽬标库配置格式HOST=192.168.16.10 主机名DATABASE=liucongy 数据库名PORT=1521 端⼝号USER=risk ⽤户名PSW=risk 密码4、启动kettle,1)新建到资源库的数据库连接点击“新建”按钮,弹出以下对话框这⾥可以选择本地⼀个数据库作为资源库,,最初没有资源库,则点击新建按钮,新建⼀个数据库(做资源库)连接,注意前提是(mysql为例)已存在该数据库。
(\\192.168.16.8\Share\个⼈杂项⽬录\lubacui\Database\kettle)⽬录下有关于mysql,kettle的相关安装⽂件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
KETTLE详细设计说明书V0.1变更记录1 Kettle界面介绍双击Kettle.exe或者Spoon.bat打开Kettle图形界面化如下:(图1.1)Kettle中有两类设计分别是:Transformation(转换)与Job(作业),Transformation完成针对数据的基础转换,Job则完成整个工作流的控制。
Kettle常用三大家族:Spoon、Pan、Kitchen。
Spoon:通过图形界面方式设计、运行、调试Job与Transformation。
Pan:通过脚本命令方式来运行Transformation。
Kitchen:通过脚本命令方式来运行Job,一般就是通过调用Kitchen脚本来完成定时任务。
说明:当打开Kettle时显示的是Kettle的相关版本信息与GNU相关协议说明。
(图1.2)说明:打开Kettle时弹出的窗口提示以资源库方式登录相关信息,关于乌江水电项目工程存储方式是以XML文件方式来进行存储,所以我就直接点击“没有资源库”。
图(1.3)说明:进入Kettle设计界面。
提示关于Spoon相关信息,这里直接点击“关闭”按钮。
(图1.4) 说明:图片中所使用到的字母位置标识说明。
(A):Kettle所使用到的菜单栏。
(B):在使用Kettle时所涉及使用到的对象。
(C):Kettle中所有的组件。
(D):根据选择(B)或者(C)显示相应的结果。
(E):Kettle设计界面。
(图1.5)说明:文件:是对Kettle所生成的Job与Trans进行相关的操作,如:新建、打开、保存、导入、导出等相关操作。
(图1.6)说明:编辑:是对Kettle当前打开的Job与Trans进行相关的操作,如:复制、撤销、环境变量显示、资源库查看、图形界面自定义调整(颜色、字体、样式)等相关操作。
(图1.7)说明:视图:是对Kettle当前打开的Job与Trans进行放大、缩小相关操作。
(图1.8)说明:资源库:是对Kettle中所使用到的资源库进行操作,如:资源库连接、断开、当前用户编辑等操作。
(图1.9)说明:转换:是对Kettle当前所打开的Trans进行相关测试功能。
(图1.10)说明:作业:是对Kettle当前所打开的Job进行操作,如:运行、复制、参数设置等相关操作。
(图1.11)说明:向导:是对Kettle当前所打开的Job或者Trans对其进行一步一步的指导性操作。
(图1.12)说明:帮助:查看当前Kettle版本相关信息。
2 Kettle数据源连接配置Kettle中对于数据源有作用域的定义,也就是说有全局数据源与局部数据源两种。
首先打开Kettle UI界面,使用快键方式(Ctrl+N)创建一个转换,新建数据源如下图:(图2.0) 通过点击“新建”,则出现(图2.1)(图2.1)说明:通过(图2.1)我们可以看到创建数据源时需要配置相应的参数:Connection Name(必填):配置数据源使用名称,如:wjsd_srcHost Name(必填):数据库主机IP地址,如:192.168.1.254Database Name(必填):数据库实例名称,如:WJSDTablespace for Data(可选):数据表空间名称Tablespace for indices(可选):数据索引名称Port Number(必填):端口号User Name(必填):用户名Password(必填):密码Access:选择数据库连接方式,ODBC方式则需要配置系统ODBC,JNDI则使用配置jdbc.properties文件,默认为Native(JDBC)连接方式,。
注:在Kettle中如果在填写框末尾出现$符号标识说明此处可以使用变量参数来定义。
填写好数据库连接信息后,点击“Test”按钮,出现效果如(图2.2)(图2.2)说明:配置成功数据源后默认情况下数据源作用域为局部数据源,如果需要把数据源修改成为全局数据源,则选择数据源wjsd_src右击Share保存即可。
3 Kettle全量抽取对于纬表、字典表或者是没有时间戳的表,一般我们都采用全量抽取的方式将业务系统库中的数据抽取到数据仓库中。
乌江水电项目需要用到全量抽取的源表有:下面以CIM下面的d_Reservoir为例详细描述Kettle全量抽取的过程1、创建转换(Ctrl+N),转换名称为:d_Reservoir2、创建数据源连接wjsd_src、wjsd_tag,可参考【Kettle数据源连接配置】3、在Kettle设计盘中拖入“表输入”、“表输出”两个组件即可4、执行转换对数据进行抽取5、查看结果是否与数据源中的数据是否一致步骤1、创建转换(图3.1)说明:当创建转换时点击“核心对象”下方则显示可以在转换中能使用的所有组件。
点击“输入”--单击“表输入”把“表输入”组件往空白处拖入即可。
(图3.2)说明:双击“表输入”组件弹出(图4.2),输入或选择相应的参数信息。
步骤名称:默认为“表输入”,如果想规范化建议填写源表名称信息,以便清楚查询是某张表结构信息数据库连接:选择数据来源数据源名称SQL:编写查询源数据SQL脚本,可以通过“获取SQL查询语句…”获取。
允许延迟转换:强烈建议默认替换SQL语句里的变量:如果SQL语句中有使用到变量则需要勾选从步骤插入数据:默认执行每一行:默认记录数量限制:0表示默认,如果有特殊需求可以自定义只查询出多少条记录数注:1、在SQL语句中一定不能加入分号(;),这是初学者很容易犯错的一个地方。
2、如果无法确定SQL语句是否正常时可以通过“预览”来查看SQL语句是否正确。
(图3.3)说明:有了源之后则需要有目标,也就是说有我水我们则需要把水通过渠道通向目标如(图4.3) 拖入“表输出”后,我们通过按住“Shift”键单击源划向目标“表输出”,则会出现源指向目标的箭头线。
双击“表输出”如(图4.3),另外可以选择两个或者两个以上的组件进行位置对齐,可以通过Ctrl+向上箭头、Ctrl+向下箭头、Ctrl+向左箭头、Ctrl+向右箭头。
步骤名称:默认为“表输入”,如果想规范化建议填写目标表名称信息,以便清楚查询是某张表结构信息数据库连接:选择数据来目标数据源名称目标模式:schema,Oracle数据库则是用户名。
目标表:从源数据输出到目标表名提交记录数:设置数据库提交大小裁剪表:清空目标表数据,相当于Oracle数据库Truncate语法忽略插入错误:当插入数据库出错时则可以忽略,默认忽略18条记录数,记不太清楚Specify database fields:手动指定源与目标字段映射关系,如(图4.4)Main options:如果是表分区则可以指定表分区,一般为默认Database fields:如(图3.4)(图3.4)说明:指定源与目标字段映射关系,点击Get fields匹配字段映射关系。
注:在没有勾选“Specify databasefields”情况下,源表字段不能多于目标表的字段数量,否则会出错。
(图3.5)说明:点击运行按钮,或按F9,运行这个转换,根据(图3.5)可以查看出转换运行的日志情况。
(图3.6)说明:根据(图3.6)可以查看出每个步骤执行的记录数、读、写、输入、输出、更新、拒绝、错误、激活、时间、速度。
可以通过查看此处分析当前转换运行效率而断定转换是否需要进行优化。
总结:1、在运行转换时,当前转换是处于并发状态,如果有多个表输入则会同时运行。
2、在设计转换时最好是一个数据流,不要有多条数据流。
如果有多条数据流则有可能发生锁表问题。
4 Kettle增量抽取对于下面以traget_day为例,详细描述增量抽取数据。
因为是增量的抽取,所以参数的传递是必要的。
增量抽取一般都是抽取昨天的数据装载到目标表中。
Kettle中参数使用方法有两种:一种是%%变量名%%,一种是${变量名}。
这两种方法变量数据类型都是数字类型。
1、创建转换(Ctrl+N),转换名称为:traget_day2、创建数据源连接wjsd_src、wjsd_tag,可参考【Kettle数据源连接配置】3、在Kettle设计盘中拖入’’执行SQL脚本”、“表输入”、“表输出”三个组件4、执行转换对数据进行抽取5、查看结果是否与数据源中的数据是否一致(图4.1)注:在SQL中使用变量时需要把“是否替换变量”勾选上,否则无法使变量生效。
说明:这里需要注意的是后面的限定where条件,因为源表的时间字段是时间类型,我们的参数是数字类型,所以需要根据源表时间字段的不同注意转换。
(图4.2)说明:这里与全量抽取的表输出差不多。
(图4.3)说明:这里要考虑到数据出错重跑的问题,如果需要重新插入输入参数日期的数据,就必须要先删除输入参数日期的数据,不然会报错。
因为我参数在条件里面,变量替换要打上沟,不然设置的变量会失效。
5 Kettle实时数据抽取乌江水电项目实时数据的表有实时抽取与增量抽取基本上相差不大,只是对时间戳的处理方式不同,以REAL这张表为例,详细描述实时抽取过程的步骤。
1、创建转换(Ctrl+N),转换名称为:traget_day2、创建数据源连接wjsd_src、wjsd_tag,可参考【Kettle数据源连接配置】3、在Kettle设计盘中拖入’’执行SQL脚本”、“表输入”、“表输出”三个组件4、执行转换对数据进行抽取5、查看结果是否与数据源中的数据是否一致(图5-1)说明:因为实时抽取的表时间戳字段一般都为TIMESTAMP类型,这里where条件对参数的处理必须这样,不然可能会在抽取数据的时候导致数据丢失。
(图5-2)说明:表输出与增量抽取相同,只是目标表不同。
图(5-3)说明:这里与增量抽取相类似,回跑的时候参数日期的数据必须要删除。
同时注意变量替换打上勾。
图(5-4)说明:依次把每个步骤连接起来,顺序如图5-4所示。
6 Kettle定时任务在增量抽取过程中,ETL定时任务是一个必不可少的环节,因为定时任务取决与你的ETL程序抽取业务数据的频率程度(日、周、季、月、年),一般情况下都采用T+1方式来抽取数据到目标表中,也可以通过指定日期参数抽取到目标表。
6.1 参数变量设置转换首先创建相应的参数变量设置转换(Set_Param.ktr)。
对于怎样获取昨天日期,一般通过“获取系统信息”组件获取昨天日期,再通过字段选择转换成yyyy-mm-dd格式,最后设置成变量,设置参数变量为${YESTERDAY}。
如下图:(图6.1-1)获取相关的日期参数,昨天日期。
(图6.1-2)由于获取日期是到时分秒,通过字段选择转换成年月日格式。
图(6.1-3)设置参数,点确定时会提示大致意思是“设置的参数不能在当前转换中使用”。