kettle分区应用案例
- 格式:docx
- 大小:365.71 KB
- 文档页数:6
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】,如果出现如下提示则说明配置成功点击关闭,再点击确定保存数据库连接。
1、应用场景这里简单概括一下几种具体的应用场景,按网络环境划分主要包括:∙表视图模式:这种情况我们经常遇到,就是在同一网络环境下,我们对各种数据源的表数据进行抽取、过滤、清洗等,例如历史数据同步、异构系统数据交互、数据对称发布或备份等都归属于这个模式;传统的实现方式一般都要进行研发(一小部分例如两个相同表结构的表之间的数据同步,如果sqlserver数据库可以通过发布/订阅实现),涉及到一些复杂的一些业务逻辑如果我们研发出来还容易出各种bug;∙∙前置机模式:这是一种典型的数据交换应用场景,数据交换的双方A和B网络不通,但是A和B都可以和前置机C连接,一般的情况是双方约定好前置机的数据结构,这个结构跟A和B的数据结构基本上是不一致的,这样我们就需要把应用上的数据按照数据标准推送到前置机上,这个研发工作量还是比较大的;∙∙文件模式: 数据交互的双方A和B是完全的物理隔离,这样就只能通过以文件的方式来进行数据交互了,例如XML格式,在应用A中我们开发一个接口用来生成标准格式的XML,然后用优盘或者别的介质在某一时间把XML数据拷贝之后,然后接入到应用B上,应用B 上在按照标准接口解析相应的文件把数据接收过来;∙综上3种模式如果我们都用传统的模式无疑工作量是巨大的,那么怎么做才能更高效更节省时间又不容易出错呢?答案是我们可以用一下Kettle-_-!2、DEMO实战2、1 实例1:数据库TestA中的UserA表到数据库TestB的UserB表1)为方便演示,我这边把Sql脚本贴出来,大家直接复制在sqlserver中运行即可,sql脚本如下:简单表之间交换2)Kettle实现方式功能简述:数据库TestA中的UserA表到数据库TestB的UserB表;实现流程:建立一个转换和一个作业Job;A:建立一个转换:打开Kettle.exe,选择没有资源库,进入主界面,新建一个转换,转换的后缀名为ktr,转换建立的步骤如下:步骤1:创建DB连接,选择新建DB连接,如下图,我们输入相应的Sqlserver配置信息之后点击Test按钮测试是否配置正确!我们需要建立两个DB连接,分别为TestA和TestB;步骤2:建立步骤和步骤关系,点击核心对象,我们从步骤树中选择【表输入】,如下图,这样拖拽一个表输入之后,我们双击表输入之后,我们自己可以随意写一个sql语句,这个语句表示可以在这个库中随意组合,只要sql语句没有错误即可,我这里只是最简单的把TestA中的所有数据查出来,语句为select * from usersA。
kettle案例综合案例构建dvd
构建DVD租赁商店数据仓库是一个复杂的过程,需要综合运用Kettle工具和相关数据表。
下面是一个简单的案例介绍:
首先,需要了解数据库sakila中包含的16张数据表,包括actor(演员)表、address (地址)表、category(类别)表等。
然后,使用Kettle工具将数据加载到日期维度表dim_date 中。
具体步骤如下:
1. 创建一个转换load_dim_date,并添加生成记录控件、增加序列控件、JavaScript 代码控件、表输出控件以及Hop跳连接线。
2. 配置生成记录控件,在“限制”处添加生成的日期,默认为10,这里改为3650,即生成10年的日期(10*365);在“字段”框添加字段language(语言)、country_code(国家码)、initial_date(初始化的日期),对生成的日期进行初始化。
最后,将DVD租赁商店的数据与维度表进行关联和分析,以构建一个完整的数据仓库。
kettle应用实践(转)今天早上在网上看到了kettle发布了最新的版本,忽然想起最近其实做了不少工作应该是ETL工具的拿手好戏,赶紧下载下来看看,看是否能够在实际的工作中应用起来。
顺便讲一下,为啥看到kettle会两眼发光。
最近写了好几个小程序,用于从一个ftp去获取数据,然后转发至另一个ftp去,或者是从一个数据库获取数据然后保存至本地的数据库中,使用的是jdk中的Timer实现的定时调度,本来也没什么问题,连续运行几个月都不会出错。
可是最近网络不是太好,周期性抽风,ping包时,每5分钟大概会丢7-8个包,从而导致程序也会假死,过一段时间后就不正常干活了,估计是因为用了数据库连接池的问题,要是每次发起数据库连接可能就不会有问题了,偷懒也不想改了,因为网络最终肯定是会修好的 :-) 但是想试试ETL工具,因为后面还有一些类似的东西要处理,不想写代码了,用别人的轮子感觉比较好,呵呵首先下载了kettle的最新版,kettle3.1,解压后即可运行,一般的开发人员稍微摸索一下,看看例子简单的转换还是会做的,今天小试了一把,有几个注意点记下来。
1.使用资源库(repository)登录时,默认的用户名和密码是admin/admin2.当job是存放在资源库(一般资源库都使用数据库)中时,使用Kitchen.bat执行job时,需使用如下的命令行:Kitchen.bat /rep kettle /user admin /pass admin /job job名3.当job没有存放在资源库而存放在文件系统时,使用Kitchen.bat执行job时,需使用如下的命令行:Kitchen.bat /norep /file user-transfer-job.kjb4.可以使用命令行执行job后,就可以使用windows或linux的任务调度来定时执行任务了在一开始使用命令行方式执行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,双击运行欢迎界面如下图所示:4、KETTLE组件介绍与使用4.1 Kettle使用Kettle提供了资源库的方式来整合所有的工作,;1)创建一个新的transformation,点击保存到本地路径,例如保存到D:/etltest下,保存文件名为Trans,kettle默认transformation文件保存后后缀名为ktr;2)创建一个新的job,点击保存到本地路径,例如保存到D:/etltest下,保存文件名为Job,kettle默认job文件保存后后缀名为kjb;4.2 组件树介绍4.2.1Transformation 的主对象树和核心对象分别如下图:Transformation中的节点介绍如下:Main Tree:菜单列出的是一个transformation中基本的属性,可以通过各个节点来查看。
DB连接:显示当前transformation中的数据库连接,每一个transformation的数据库连接都需要单独配置。
一、【kettle】window安装与配置1、下载kettle包,并解压2、安装jdk,并配置java环境a).打开我的电脑--属性--高级--环境变量b).新建系统变量JA V A_HOME和CLASSPATH变量名:JA V A_HOME变量值:C:\Program Files\Java\jdk1.7.0[具体路径以自己本机安装目录为准]变量名:CLASSPATH变量值:.;%JA V A_HOME%\lib\dt.jar;%JA V A_HOME%\lib\tools.jar;c). 选择“系统变量”中变量名为“Path”的环境变量,双击该变量,把JDK安装路径中bin目录的绝对路径,添加到Path变量的值中,并使用半角的分号和已有的路径进行分隔。
变量名:Path变量值:%JA V A_HOME%\bin;%JA V A_HOME%\jre\bin;3、配置kettle环境在系统的环境变量中添加KETTLE_HOME变量,目录指向kettle的安装目录:D:\kettle\data-integration4、启动spoonWindows直接双击批处理文件Spoon.bat具体路径为:kettle\data-integration\Spoon.batLinux 则是执行spoon.sh,具体路径为:~/kettle/data-integration/spoon.sh二、使用Kettle同步数据同步数据常见的应用场景包括以下4个种类型:➢ 只增加、无更新、无删除➢ 只更新、无增加、无删除➢ 增加+更新、无删除➢ 增加+更新+删除只增加、无更新、无删除对于这种只增加数据的情况,可细分为以下2种类型:1) 基表存在更新字段。
通过获取目标表上最大的更新时间或最大ID,在“表输入”步骤中加入条件限制只读取新增的数据。
2) 基表不存在更新字段。
通过“插入/更新”步骤进行插入。
插入/更新步骤选项:只更新、无增加、无删除通过“更新”步骤进行更新。
kettle多表关联循环分页迁移数据的完整例子Kettle是一款强大的ETL工具,它可以帮助我们高效地进行数据迁移、转换和处理。
在实际应用中,常常需要处理多张表之间的关联关系,并且可能会需要进行循环分页的操作。
下面我们将给出一个完整的例子,来说明如何使用Kettle实现这样的需求。
首先,我们需要明确要处理的数据表以及它们之间的关系。
假设我们需要迁移一个电商平台的数据,其中包括商品表、订单表和用户表。
商品表和订单表通过商品ID关联,订单表和用户表通过用户ID关联。
接下来,我们需要进行分页操作,以便逐页地读取数据并进行处理。
Kettle提供了一个称为"Table Input"的组件,它可以从数据库中读取数据。
我们可以配置该组件来指定要读取的表、查询条件以及每页读取的记录数。
在组件的"SQL"字段中,我们可以编写SQL语句来告诉Kettle如何获取数据。
接下来,我们需要处理关联关系。
假设我们要将商品表中的商品名称添加到订单表中。
我们可以使用"Table Input"组件读取商品表的数据,并将结果存储在一个变量中。
然后,我们可以使用"Stream Lookup"组件来将商品名称添加到订单表中。
在"Stream Lookup"组件的配置中,我们可以指定要关联的字段以及要进行关联的表。
通过这样的配置,Kettle会自动根据关联关系将商品名称添加到订单表中。
然后,我们需要进行循环处理。
在Kettle中,我们可以使用"Copy rows to result"组件来将数据分页处理,并将结果发送到下一步的处理中。
在该组件的配置中,我们可以指定每页的记录数、每页的起始位置以及最大的记录数。
通过这样的配置,我们可以实现循环处理的效果。
最后,我们需要将结果写入目标数据库。
Kettle提供了一个称为"Table Output"的组件,它可以将数据写入数据库。
kettle的并行,集群和分区January 4th, 2011 by ahuoo Leave a reply »当你有很多数据要处理的时候,能够有效地使用所有的计算资源是非常重要的。
不管是台个人电脑,还是有数百台服务器,你都想让Kettle能尽可能的使用所有可用的计算资源,并在可接受的时间范围内获取执行结果。
在这一章节,我们将解开kettle的转换和作业在垂直扩展和水平扩展方面的秘密。
垂直扩展是尽可能的使用单台服务器上的多CPU核。
水平扩展是使用多台机器资源,使他们并行计算。
这两种方法都是ETL子系统的一部分(#31,并行/流水线系统)。
章节的第一部分先谈谈转换内部的并行机制和多种使用其进行垂直扩展的方法。
然后我们讲解怎样在子服务器集群环境下进行水平扩展转换。
最后我们讲讲kettle分区的一些具体细节,利用分区进一步提升并行计算的性能。
一、多线程在章节2中,我们已经了解了转换的基本组成部分是步骤,而且每个步骤是并行执行的。
现在我们将更深入这一话题,解释kettle的多线程能力怎样使你更充分利用机器所有的计算资源,垂直扩展一个转换。
默认情况下,转换中的每一个步骤都是在单一隔离的线程里面并行的执行。
但可以为任何单一的步骤增加线程的数目,也可叫做复制。
在15章里我们也解释过,这种办法能够提高那些CPU 时间消耗量大的转换步骤的性能。
[*1]让我们看一个简单的例子,如图16-1,其中所有数据的记录都被一个User Defined Java Class 步骤处理图16-1:一个简单的转换你可以右键这个User Defined Java Class步骤,选择菜单中的“改变开始复制的数量”,如果你指定4份,你将看到转换的图形表示如下,见图16-2图16-2:在多个复制下运行一个步骤这个“4x”的符号指示了4个复制将在运行的时候被启动。
注意:所有步骤复制只维护一份步骤的描述,[*2]为了理解接下来的章节,这儿定义几个专业术语:∙Step: 描叙需要做的某项工作的定义或元数据∙Step copy: 在步骤里定义的执行某项工作的一个并行工作线程换句话说,一个step仅仅是任务的定义,而一个step copy则表示一个实际执行的任务。
ETL工具Kettle用户手册之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”只取首字母的缩写。
kettle 分层解析(最新版)目录1.Kettle 简介2.Kettle 分层解析的概念3.Kettle 分层解析的实现4.Kettle 分层解析的优点5.Kettle 分层解析的应用实例正文一、Kettle 简介Kettle 是一款开源的数据集成工具,主要用于数据库、数据仓库和业务智能等领域。
它可以帮助用户快速地将不同来源、格式和类型的数据进行整合,为数据分析和决策提供支持。
Kettle 提供了丰富的数据转换功能,支持多种数据源和目标,使得数据集成变得更加简单、高效。
二、Kettle 分层解析的概念Kettle 分层解析是指在数据集成过程中,将数据源的结构和业务逻辑进行分层处理,从而实现对数据的有效解析和转换。
分层解析可以帮助用户更好地理解和管理数据,提高数据处理的准确性和效率。
三、Kettle 分层解析的实现1.首先,Kettle 可以通过连接各种数据源(如数据库、文件系统等)来获取数据。
2.其次,Kettle 提供数据抽取、转换和加载等功能,对获取的数据进行处理。
3.最后,Kettle 将处理后的数据加载到目标数据源,完成整个数据集成过程。
四、Kettle 分层解析的优点1.高度灵活:Kettle 支持多种数据源和目标,可以满足不同场景下的数据集成需求。
2.易于维护:分层解析使得数据处理过程更加清晰,有利于提高数据处理的可维护性。
3.性能优越:Kettle 采用高效的数据处理技术,可以大大缩短数据集成的时间。
五、Kettle 分层解析的应用实例假设有一个企业的销售数据分散在不同的部门,需要将这些数据整合到一个数据仓库中。
通过使用 Kettle 分层解析,可以先将各部门的销售数据从不同的数据源中抽取出来,然后对这些数据进行清洗、转换和合并,最后将整合后的数据加载到数据仓库中,从而实现销售数据的统一管理。
Kettle分区应用案例
实际生产中,经常会有地市数据上报或者省厅省厅数据下发,而且各地市的表结构都相同的需求。
针对这种需求,假如有10个地市,一般会写10个抽取。
这样不仅做了重复工作,而且增加了维护负担。
通过kettle分区功能,可以只写一个抽取,实现多地市数据汇集和下发功能。
下面通过一个案例,简单介绍下kettle分区使用。
1. 创建数据库连接
新建数据库连接,点击集群选项,此处假定所有节点都是相同类型数据库。
如下图,创建含有两个节点的集群连接。
2. 创建分区模式
新建数据库分区
点击导入分区,可以从刚刚创建的数据库连接中导入分区,点击ok保存。
3. 创建抽取模型
整个模型如下
表输入中选择刚刚创建的集群连接,输入SQL语句。
这里获取查询SQL语句及预览功能不能直接使用。
文本文件输出组建配置如下
右键点击表输入,选择分区选项,选择使用数据库分区,分区类型如下:None:不分区
Mirror to all partitions:使用数据库分区
Remainder of division:使用kettle标准分区
4. 结果验证
源表数据如下:
数据结果文件如下:。