KETTLE详细设计说明
- 格式:doc
- 大小:3.37 MB
- 文档页数:32
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 etl设计方案1. 引言Kettle是一款强大的ETL(Extract, Transform, Load)工具,可以帮助用户实现数据的抽取、转换和加载。
本文档旨在介绍Kettle的设计方案,包括架构设计、任务调度、数据传输等重要内容。
2. 架构设计Kettle的架构由三个主要组件组成:Spoon、Pan和Kitchen。
•Spoon:是Kettle的图形用户界面工具,用于创建和编辑Kettle的转换和作业。
•Pan:是一个命令行工具,用于在命令行模式下执行Kettle的转换和作业。
•Kitchen:也是一个命令行工具,用于在命令行模式下执行Kettle的作业,和Pan相比,Kitchen可以更好地管理和监控作业的执行过程。
Kettle的架构还包括一个元数据数据库,用于存储转换和作业的定义、日志、错误信息等。
3. 任务调度Kettle提供了多种任务调度的方式,可以根据实际需求选择合适的方式。
3.1 定时任务调度Kettle可以通过定时任务调度器(例如Quartz)实现定时执行转换和作业。
用户可以配置任务的执行时间、频率和参数等信息,实现自动化的数据处理。
3.2 事件触发任务调度Kettle还支持通过事件触发的任务调度。
用户可以定义一个事件,当满足特定条件时触发任务的执行。
例如,可以设置一个文件变化的事件,当指定的文件发生变化时,触发转换或作业的执行。
4. 数据传输Kettle支持多种数据传输方式,可以方便地从源数据源中抽取数据、进行转换,并加载到目标数据源中。
4.1 数据抽取Kettle可以从各种关系型数据库、文件系统、Web服务等数据源中抽取数据。
用户可以通过Kettle提供的数据抽取组件,配置数据源的连接信息、查询语句等参数,实现数据的快速抽取。
4.2 数据转换Kettle的转换组件提供了丰富的数据转换功能,包括数据清洗、数据过滤、字段映射、数据计算等操作。
用户可以通过拖拽转换组件并连接它们,定义数据的转换逻辑和处理流程。
kettle源码解读(原创版)目录1.Kettle 简介2.Kettle 的架构和核心组件3.Kettle 的数据存储和处理4.Kettle 的任务和作业5.Kettle 的性能优化和扩展性6.总结正文1.Kettle 简介Kettle 是一款开源的 ETL 工具,其主要功能是帮助数据管理员和开发人员将数据从一个数据源迁移到另一个数据源。
Kettle 可以处理各种类型的数据源,包括数据库、文件系统和数据仓库等。
它具有强大的数据转换和数据处理能力,可以帮助用户完成复杂的数据集成任务。
2.Kettle 的架构和核心组件Kettle 的架构主要由四个核心组件组成,分别是:资源管理器、转换引擎、步骤管理和仓库管理。
资源管理器负责管理所有的资源,包括数据源、目标数据存储和转换步骤等。
转换引擎负责执行具体的数据转换任务,包括数据抽取、数据转换和数据加载等。
步骤管理器负责管理所有的ETL 步骤,包括数据的输入、输出和转换等。
仓库管理器负责管理所有的数据仓库,包括数据的存储和查询等。
3.Kettle 的数据存储和处理Kettle 支持各种类型的数据存储和处理,包括关系型数据库、对象数据库、文件系统和数据仓库等。
用户可以根据具体的需求选择不同的数据存储和处理方式。
Kettle 提供了强大的数据转换功能,可以实现各种类型的数据转换,包括数据清洗、数据聚合和数据分组等。
4.Kettle 的任务和作业Kettle 的任务和作业是其核心功能之一。
任务是指一个具体的数据处理任务,例如数据抽取、数据转换或数据加载等。
作业是指一个完整的数据处理过程,包括多个任务的组合和调度等。
用户可以根据具体的需求创建和管理任务和作业,以实现复杂的数据处理任务。
5.Kettle 的性能优化和扩展性Kettle 提供了一系列的性能优化和扩展性功能,包括数据缓存、并行处理和分布式处理等。
数据缓存可以有效地减少数据访问的时间,提高数据处理的速度。
并行处理可以充分利用计算机的多核处理能力,提高数据处理的效率。
KETTLE详细设计KETTLE是一种用于提供数据集成、转换和加载功能的开源工具,经常用于数据仓库、数据集市和ETL(抽取、转换和加载)过程。
它提供了图形用户界面,允许用户通过拖放操作来定义数据集成任务,并提供了强大的数据处理功能和可扩展的插件机制。
以下是KETTLE的详细设计,包括架构、核心模块和主要功能。
1.架构- Spoon:用于设计和配置任务的图形界面工具。
- Kitchen:用于以命令行方式执行任务。
- Pan:用于批量执行任务。
这些模块可以独立运行,也可以通过调用KETTLE的API进行集成。
2.核心模块-元数据存储:用于保存任务和转换的定义和配置信息,支持多种数据库和文件格式。
-作业管理器:用于管理任务和转换的执行,包括执行控制、错误处理和监控。
-转换引擎:用于执行数据转换和操作,支持各种数据处理任务,如数据筛选、合并、变换和聚合。
-数据加载:用于向目标系统加载转换后的数据。
3.主要功能-数据连接和访问:支持多种数据源和文件格式,包括关系数据库、文件、XML、JSON等。
可以通过定义连接和查询来访问数据源。
-数据转换和操作:提供了丰富的数据转换和操作功能,如数据筛选、排序、合并、分割、变换、聚合等。
可以通过拖放操作来定义转换和操作的步骤和顺序。
-错误处理和监控:提供了强大的错误处理和监控机制,可以捕获和处理数据转换过程中的错误和异常。
还可以定义报警和日志输出,以便及时发现和解决问题。
-调度和批量执行:支持任务的调度和批量执行,可以定义作业流并规定作业的执行顺序和依赖关系。
支持并行执行和资源调度,以提高任务的执行效率。
-插件机制和扩展性:提供了可扩展的插件机制,允许用户根据需求开发自定义插件并集成到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进行放大、缩小相关操作。
晴天云目录Kettle产品详细介绍简介简单地说,Kettle 就是国外一个开源的ETL工具。
其主要功能就是对源数据进行抽取、转换、装入和加载数据。
也就是将源数据整合为目标数据。
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
Spoon 是一个图形用户界面,它允许运行转换或者任务,其中转换是用pan工具来运行,任务是用Kitchen来运行。
Pan 是一个数据转换引擎,它可以执行很多功能。
例如从不同的数据源读取、操作和写入数据。
Kitchen 是一个可以运行利用xml或数据资源库描述的任务,通常任务是在规定的时间间隔内用批处理的模式自动运行。
Kettle主要包括以下三大块:一、Spoon——转换/工作(transform/job)设计工具(GUI方式);二、Kitchen——工作(job)执行器(命令行方式) ;三、Span——转换(trasform)执行器(命令行方式)。
的安装首先,必须先安装Sun 公司的JAVA 运行环境以上的版本(包括),并配置好环境变量;然后,将下载的Kettle软件解压到目标目录,就可以看到Kettle的启动文件或;最后,运行启动文件。
Windows 平台的启动:双击。
Linux 平台的启动:双击。
的详细介绍资源库管理登陆时可以选择”没有资源库”即可进入Kettle,此时所定义的转换和工作将只能存储在本地磁盘上,以.ktr文件和.kjb文件的方式。
若使用资源库登录,则所有定义的转换和工作将会存储到资源库里。
实际上,资源库就是一个数据库,比如SQL SERVER数据库,里面存储了Kettle定义的元素的相关元数据,简单而言,就是元数据库。
如果资源库创建完毕,则资源库的相关信息将存储在文件“”中,它位于你的缺省home 目录的隐藏目录“.kettle”中。
如果是windows 系统,这个路径就是c:\Documents andSettings\<username>\.kettle。
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课程设计一、课程目标知识目标: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简介(整体架构,运⾏⽅式,使⽤⽅法)项⽬负责⼈Matt的说法:把各种数据放到⼀个壶⾥,然后呢,以⼀种你希望的格式流出。
呵呵,外国⼈都很有联想⼒。
看了提供的⽂档,然后对发布程序的简单试⽤后,可以很清楚得看到Kettle的四⼤块:Chef——⼯作(job)设计⼯具 (GUI⽅式)Kitchen——⼯作(job)执⾏器 (命令⾏⽅式)Spoon——转换(transform)设计⼯具(GUI⽅式)pan——转换(trasform)执⾏器(命令⾏⽅式)嗯,厨师已经在厨房⾥,勺⼦和盘⼦⼀应俱全,且看能做出如何的⼤餐?⼀:Chef——⼯作(job)设计器这是⼀个GUI⼯具,操作⽅式主要通过拖拖拉拉,勿庸多⾔,⼀看就会。
何谓⼯作?多个作业项,按特定的⼯作流串联起来,开成⼀项⼯作。
正如:我的⼯作是软件开发。
我的作业项是:设计、编码、测试!先设计,如果成功,则编码,否则继续设计,编码完成则开始设计,周⽽复始,作业完成。
来,看看Chef中的作业项:1.1:转换:指定更细的转换任务,通过Spoon⽣成。
通过Field来输⼊参数。
1.2: SQL:sql语句执⾏,1.3: FTP:下载ftp⽂件。
1.4:邮件:发送邮件。
1.5:检查表是否存在,1.6:检查⽂件是否存在,1.7:执⾏shell脚本。
如:dos命令。
1.8:批处理。
(注意:windows批处理不能有输出到控制台)。
1.9: Job包。
作为嵌套作业使⽤。
1.10:JavaScript执⾏。
这个⽐较有意思,我看了⼀下源码,如果你有⾃已的Script引擎,可以很⽅便的替换成⾃定义Script,来扩充其功能。
1.11:SFTP:安全的Ftp协议传输。
1.12:HTTP⽅式的上/下传。
好了,看看⼯作流:如上⽂所述,⼯作流是作业项的连接⽅式。
分为三种:⽆条件,成功,失败。
这个没啥好说的,从名字就能知道它的意图。
嗯,为了⽅便⼯作流使⽤,提供了⼏个辅助结点单元(你也可将其作为简单的作业项):1:Start单元,任务必须由此开始。
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详细设计说明书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增量抽取必要的。
增量抽取一般都是抽取昨天的数据装载到目标表中。
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)设置参数,点确定时会提示大致意思是“设置的参数不能在当前转换中使用”。
图(6.1-4)依次连接每个步骤,简单的参数设置转换就算完成了。