kettle集成应用之---java调用执行transformation和job
- 格式:doc
- 大小:247.50 KB
- 文档页数:8
kettle资源库表结构说明Kettle资源库表结构说明Kettle是一种开源的ETL(Extract, Transform, Load)工具,用于数据集成和数据转换。
在Kettle中,资源库(Repository)是一个数据库,用于存储和管理Kettle的各种元数据信息。
资源库表结构是资源库中存储这些元数据信息的表的结构,本文将对Kettle资源库表结构进行详细说明。
1. R_DATABASE表R_DATABASE表用于存储Kettle中的数据库连接信息。
该表包含以下字段:- ID:数据库连接的唯一标识符。
- NAME:数据库连接的名称。
- TYPE:数据库类型,如MySQL、Oracle等。
- ACCESS:数据库访问类型,如JNDI、ODBC等。
- HOST_NAME:数据库服务器的主机名。
- DATABASE_NAME:数据库名称。
- PORT:数据库服务器的端口号。
- USERNAME:数据库的用户名。
- PASSWORD:数据库的密码。
2. R_REPOSITORY表R_REPOSITORY表用于存储资源库的信息。
该表包含以下字段:- ID_REPOSITORY:资源库的唯一标识符。
- NAME:资源库的名称。
- DESCRIPTION:资源库的描述信息。
- BASE_DIRECTORY:资源库的基础目录。
3. R_TRANSFORMATION表R_TRANSFORMATION表用于存储转换(Transformation)的信息。
转换是Kettle中的基本单位,用于定义数据的抽取、转换和加载过程。
该表包含以下字段:- ID_TRANSFORMATION:转换的唯一标识符。
- NAME:转换的名称。
- DESCRIPTION:转换的描述信息。
- EXTENDED_DESCRIPTION:转换的扩展描述信息。
- TRANS_VERSION:转换的版本号。
- TRANS_STATUS:转换的状态。
Kettle使用笔记一、基本概念:1.1、资源库保存kettle脚本或转换、存放数据库连接的地方,可以建立多个数据库连接,使用时就无需每次重复建立1.2、数据库连接(db links)连接数据库的功能,需处理数据库中的数据时创建,可连接Oracle、SqlServer、MySQL、DB2等1.3、转换(trans)处理数据的ETL过程,里面存放许多处理数据的组件,完成后保存会生成一个ktl文件。
1.4、作业(job)自动、定时执行转换的步骤的名称,可以在自动执行转换的过程添加参数进行控制。
1.5、步骤(steps)转换和作用的每个操作都是一个步骤。
二、工具栏:2.1、资源库概念保存kettle脚本或转换的地方,相当于myeclipes的workspace,另一种保存kettle脚本或流程的方法是需要保存的时候用文件保存,点击另存为出现(PS:打开kettle的时候加载的也是资源库)2.2、资源库位置Tools -> 数据库-> 连接数据库2.3、数据库连接创建数据库连接的时候会同时创建数据库连接?右键点击新建转换-> 点击主对象树-> 右键DB连接->新建数据库连接(PS:创建数据库后可以点击Test 判断数据库连接创建成功了没!,Oracle RAC 环境下的数据库连接创建数据库连接的方法不同)三、基本操作:3.1、轮流发送模式和复制发送模式的区别如果获取的数据必须同时进行多步处理(一种方式是将数据复制后处理,一种是获取的数据进行轮流的间隔处理),设置方式为:选中Data Grid –> 点击右键–> 数据发送-> 选择轮流发送模式或复制发送模式下图为复制处理的方式:红框选中的标签为复制处理3.2、分离步骤的方法比如下图中分离出步骤”删除”的方法:选中”删除”->点击右键-> 点击分离步骤3.3、过滤错误数据的方法采集的数据保存到数据库的时候如果有错误就,整个ETL处理流程就会停止,可以用过滤错误的方法将错误的数据写到文本中,保证ETL流程继续执行步骤:在连接”表输出”和“文本文件输出2”的时候选择”Error Handing of step”效果如下图(PS:可以明确是哪个字段,那条数据出现的错误)3.4、查询步骤中数据详情的方法比如查看下图中”表输出”步骤的数据情况的步骤:选中”表输出” -> 点击右键-> 选择显示输入\输出字段四、转换组件介绍:4.1、核心对象-输入目录下组件4.1.1、表输入组件及属性4.1.1.1允许延迟转换像Oracled的BLOB类型字段,需要的时候开始不加载这些数据,最后输出的时候才进行4.1.1.2 替换SQL语句里的变量(只在Job里面应用)配置需注意的地方:1、SQL语句的条件必须用${}符合关联起来2、替换SQL语句里的变量必须勾选3、Job中的参数组件的设置及转换必须指明是哪个转换4.1.1.3 从步骤插入数据配置需注意的地方:1、从”获取系统信息”组件中输入的参数名称必须和表输入的字段名相同2、表输入的where 条件中的值用”?”代替3、从步骤插入数据必须勾选4、获取系统信息组件中的参数类型必须选“命令行参数1”5、执行JOB后,在参数输入栏中输入你的参数值4.1.1.4 表输入组件里的执行每一行?(必须和从步骤插入数据选项一起使用)配置需注意的地方:1、从”DataGrid”组件中输入的参数名称必须和表输入的字段名相同.且该字段有多个值2、表输入的where 条件中的值用”?”代替3、从步骤插入数据、执行每一行?两个选项必须勾选4.1.1.5 记录数量限制如果查询的数据有多条,可选择”记录数量限制”选项进行查询数据的数量进行限制,比如只取100条。
Kettle 培训手册一、Etl 介绍ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于金融IT 来说,经常会遇到大数据量的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少。
Kettle是一款国外开源的etl工具,纯java编写,绿色无需安装,数据抽取高效稳定。
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
二、kettle 部署运行将kettle2.5.1文件夹拷贝到本地路径,例如D 盘根目录。
双击运行kettle文件夹下的spoon.bat文件,出现kettle欢迎界面:稍等几秒选择没有资源库,打开kettle主界面创建transformation,job点击页面左上角的创建一个新的transformation,点击保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestTrans,kettle默认transformation文件保存后后缀名为ktr点击页面左上角的创建一个新的job,点击保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestJob,kettle默认job文件保存后后缀名为kjb创建数据库连接在transformation页面下,点击左边的【Main Tree】,双击【DB连接】,进行数据库连接配置。
connection name自命名连接名称Connection type选择需要连接的数据库Method of access选择连接类型Server host name写入数据库服务器的ip地址Database name写入数据库名Port number写入端口号Username写入用户名Password写入密码例如如下配置:点击【test】,如果出现如下提示则说明配置成功点击关闭,再点击确定保存数据库连接。
Kettle 培训技术文档0507Etl 介绍ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于金融IT 来说,经常会遇到大数据量的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少。
Kettle是一款国外开源的etl工具,纯java编写,绿色无需安装,数据抽取高效稳定。
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
kettle 部署运行将kettle2.5.1文件夹拷贝到本地路径,例如D 盘根目录。
双击运行kettle文件夹下的spoon.bat文件,出现kettle欢迎界面:稍等几秒选择没有资源库,打开kettle主界面创建transformation,job点击页面左上角的创建一个新的transformation,点击保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestTrans,kettle默认transformation 文件保存后后缀名为ktr点击页面左上角的创建一个新的job,点击保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestJob,kettle默认job文件保存后后缀名为kjb 创建数据库连接在transformation页面下,点击左边的【Main Tree】,双击【DB连接】,进行数据库连接配置。
connection name自命名连接名称Connection type选择需要连接的数据库Method of access选择连接类型Server host name写入数据库服务器的ip地址Database name写入数据库名Port number写入端口号Username写入用户名Password写入密码例如如下配置:点击【test】,如果出现如下提示则说明配置成功点击关闭,再点击确定保存数据库连接。
kettle条件判断transformation executor -回复什么是kettle条件判断transformation executor?Kettle是一种强大的开源ETL工具,它允许用户以图形化界面设计和执行数据转换(Transformation)任务。
其中,条件判断(Conditional Evaluation)是Kettle中非常重要的一环,它允许用户根据一定的条件对数据进行过滤、路由和转换。
而条件判断转换执行器(Conditional Evaluation Transformation Executor)是Kettle中负责执行条件判断的模块,它根据给定的条件表达式对输入数据进行处理,并将结果输出到指定的目标。
为什么条件判断在ETL过程中至关重要?在大多数ETL过程中,数据可能需要经过多个转换步骤,包括数据清洗、数据过滤、数据转换和数据加载等。
条件判断作为数据转换环节中的重要一环,起到了过滤和筛选数据的作用。
它可以根据给定的条件过滤需要处理的数据,进而减少对系统资源的占用和提高整体数据处理效率,确保最终处理的数据满足业务需求。
条件判断转换执行器的基本使用方法使用条件判断转换执行器进行数据处理的基本流程如下:1. 创建一个新的转换任务或打开一个已有的转换任务。
2. 在转换任务中,选择条件判断转换执行器作为需要执行条件判断的模块。
3. 配置条件判断转换执行器的输入和输出步骤。
输入步骤通常是从源数据获取数据,输出步骤通常是将处理结果输出到目标位置。
4. 配置条件判断转换执行器的条件表达式。
条件表达式通常由一个或多个逻辑运算符组成,例如AND、OR、NOT等。
5. 运行转换任务,条件判断转换执行器将按照配置的条件表达式对输入数据进行处理,并将结果输出到指定的目标位置。
条件判断转换执行器的高级使用方法除了基本的使用方法外,条件判断转换执行器还提供了一些高级的功能和特性,以满足更复杂的条件判断需求。
Kettle 培训技术文档0507Etl 介绍ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于金融IT 来说,经常会遇到大数据量的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少。
Kettle是一款国外开源的etl工具,纯java编写,绿色无需安装,数据抽取高效稳定。
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
kettle 部署运行将kettle2.5.1文件夹拷贝到本地路径,例如D 盘根目录。
双击运行kettle文件夹下的spoon.bat文件,出现kettle欢迎界面:稍等几秒选择没有资源库,打开kettle主界面创建transformation,job点击页面左上角的创建一个新的transformation,点击保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestTrans,kettle默认transformation 文件保存后后缀名为ktr点击页面左上角的创建一个新的job,点击保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestJob,kettle默认job文件保存后后缀名为kjb 创建数据库连接在transformation页面下,点击左边的【Main Tree】,双击【DB连接】,进行数据库连接配置。
connection name自命名连接名称Connection type选择需要连接的数据库Method of access选择连接类型Server host name写入数据库服务器的ip地址Database name写入数据库名Port number写入端口号Username写入用户名Password写入密码例如如下配置:点击【test】,如果出现如下提示则说明配置成功点击关闭,再点击确定保存数据库连接。
Kettle⼊门--作业和转换的使⽤
本来想在centos7下部署的,发现因为java版本的问题,⽆法成功部署,⽆奈,转到windows平台(后来找到解决⽅法了,在centos7系统下yum install webkitgtk* -y 就可以了,注意执⾏spoon.sh时需要在桌⾯环境下执⾏,我直接在xshell下执⾏,会报错,⽆法弹出图形界⾯)
下载地址
https:///project/pentaho/Pentaho%208.0/client-tools/pdi-ce-8.0.0.0-28.zip
另外必需部署好java环境
解压,需要把mysql连接的jar⽂件放到lib⽂件夹下
启动spoon
点击spoon.ba即可
先新建⼀个转换:⽂件-》新建-》转换
开始新建数据库连接:选中DB连接右键-》新建
把DB连接下⾯的两个数据库,直接拖曳到右边(⾥⾯的test表和linux表都是我⾃⼰创建的)
其中那个箭头是选中表输⼊后,按住shift键,连接到表输出
最后,点击执⾏,作业1标签(这个只是⽤来说明位置)下的倒三⾓运⾏按钮
查看linux表,有新插⼊的数据
效果
上⾯是转换的使⽤,现在我们来试⼀下作业的使⽤。
作业具体⽤处不是很清楚,我只是⽤到了其中⼀个定时执⾏的作⽤,下⾯来看⼀下例⼦(效果是每分钟执⾏以下上⾯的转换,zh.ktr是上⾯的转换执⾏时提⽰的保存位置)
看⼀下有没有成功⾃动执⾏(本来只有⼏条数据,然后跑了⼀晚上,直接变成两千多条)。
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的类。
kettle正则表达式截取-回复Kettle是一种开源的ETL(Extract, Transform, Load)工具,它可以帮助用户方便地进行数据抽取、转换和加载操作。
正则表达式是一种强大的文本匹配工具,可以用于截取符合特定模式的字符串。
在本篇文章中,我们将以Kettle中使用正则表达式截取字符串的方法为主题,一步一步回答。
第一步:了解正则表达式基础知识正则表达式是一种用于描述匹配模式的文本字符串。
它由一系列的字符组成,这些字符用来描述我们想要匹配的文本模式。
在正则表达式中,常见的符号和元字符有:- 字符:例如数字、字母等,可以直接使用;- 元字符:例如.、*、?等,具有特殊匹配意义;- 特殊字符:例如\、[、]等,在正则表达式中需要使用转义字符\来进行匹配;- 限定符:例如?、*、+等,用于描述数量限制。
了解这些基本概念,将有助于我们更好地理解和编写正则表达式。
第二步:查阅Kettle中正则表达式的使用文档在正式进行截取之前,我们需要参考Kettle的官方文档或使用手册,查找关于正则表达式的使用方法和语法。
Kettle通常使用Java语言作为其脚本语言,因此我们可以参考Java正则表达式的语法和规则。
具体而言,我们需要了解关于在Kettle中如何调用正则表达式函数、如何编写正则表达式以及可用的正则表达式函数的参数和选项。
第三步:确定需要截取的字符串模式在使用Kettle中的正则表达式进行截取之前,我们需要明确我们想要截取的字符串模式。
这可以包括特定的文本格式、特定字符的位置、特定字符的组合等等。
举个例子,假设我们有一个字符串“[Kettle正则表达式截取]”,我们想要截取中括号内的内容。
那么我们的字符串模式可以是匹配以左中括号开头,右中括号结尾的字符串,中括号内部可以包含任意字符。
第四步:调用Kettle中的正则表达式函数进行截取在Kettle中,我们可以使用正则表达式函数进行字符串操作。
具体操作步骤如下:1. 打开Kettle的Transformation或Job;2. 添加一个步骤,可以是“文本文件输入”、“数据库输入”等,具体根据需要选择;3. 在步骤上点击右键,选择“编辑步骤”或“编辑转换”,进入编辑界面;4. 在输入字符串字段上点击右键,选择“选择所需的字段”;5. 在“字段选择器”对话框中,选择“字符串操作”选项卡;6. 在选项卡中选择“正则表达式截取”,便可以看到相关的参数和选项;7. 根据之前确定的字符串模式,填写相应的正则表达式,并调整参数选项,以获取正确的结果。
本文介绍如何在java应用程序中调用执行transformation和job。
(一)起步,配置资源库和数据库连接
运行Spoon.bat,启动登录界面,如下图所示:
第一次运行时,Repository为空,需要创建Repository。
(什么是Repository?Repository即资源库,是kettle用于存储元数据的多张数据表,在资源库模式下设计的transformation和job都被存储在这些数据表中。
)
如果点击界面上的“No repository”,可以在无资源库模式下进行设计,设计的对象最终以xml文件的形式存储到本地目录。
点击“New”配置新的Repository,点击“Edit”编辑现有的Repository,点击“Delete”删除现有的Repository。
资源库配置:
配置Repository需要先配置Database Connection(数据库连接)。
(什么是Database Connection?简单的来说,就是在数据库中分配一个空间存储资源库的元数据表,以Oracle为例,就是分配一个用户给kettle,具体配置见数据库连接配置)
配置好Database Connection后,填写Name和Description,点击“Create or Upgrade”按钮,就可以将kettle的元数据表创建到你指定的数据库中。
RepositoryName : kettle
默认的用户名和密码都是admin(登录后可以进行修改)
数据库连接配置:
用于存储Repository元数据。
配置信息如下:
Connection Name : merit113(名称,自定义)
Connection Type : Oracle (如果数据库是Oracle)
Access : Native(选这个即可)
Host Name : localhost(主机名)
Database Name : merit113(数据库SID)
Port Number : 1521(端口)
User Name : kettle(用户名)
Password : merit(密码)
配置结束,可以点击界面上的“Test”进行测试。
全部配置结束后,在登录界面中,选择配置的Repository,填上登录名和密码(初始均为admin),就可以以Repository模式进入kettle设计界面,在菜单栏的“Repository”中可以连接和断开Repository,可以查看Repository中的transformation和job,管理用户和编辑当前用户信息。
(二)在应用程序中集成kettle
设计好transformation和job后,如何在java里面调用执行呢?
首先,需要在项目中引入执行kettle所需要的jar包:
除了系统jre之外,以上红色标记的外部jar包(可以在kettle对应的目录下找到)都是必须引入的资源,否则,程序不能正常运行;我自己的做的例子中需要写xls文件,所以用到了jxl.jar。
另外,将kettle目录下plugins目录,将其拷贝到你的应用程序根目录下,这一点很重要,
调用资源库中的transformation
调用资源库中的job
调用本地的transformation
调用本地的job。