电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Kettle体系结构与源码分析--精选文档

102页
  • 卖家[上传人]:博****1
  • 文档编号:482601638
  • 上传时间:2022-08-31
  • 文档格式:DOC
  • 文档大小:495KB
  • / 102 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、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

      2、或者元数据库,插件通过该引擎获取基本信息,主要包括TransMeta、JobMeta和StepMeta三个类。TransMeta类,定义了一个转换(对应一个.ktr文件),提供了保存和加载该文件的方法;JobMeta类,同样对应于一个工作(对应一个.kjb文件),提供保存和加载方法;StepMeta类,保存的是Step的一些公共信息的类,每个类的具体的元数据将保存在显示了StepMetaInterface的类里面。(2) 数据集成引擎数据集成引擎包括Step引擎、Job引擎和数据库访问引擎三大部分,主要负责调用插件,并返回相应信息。(3) UIUI显示Spoon这个核心组件的界面,通过xul实现菜单栏、工具栏的定制化,显示插件界面接口元素,其中的TransGraph类和JobGraph类是用于显示转换和Job的类。l TransGraph类TransGraph类与显示选中转换标签后,红框内的编辑区对象对应org.pentaho.di.ui.spoon.trans包中的TransGraph类。l JobGraph类JobGraph类与显示选中Job标签后,红框内的编辑区对象对应org.p

      3、entaho.di.ui.spoon.job包中的JobGraph类。(4) 插件管理模块Kettle是众多“可供插入的地方”(扩展点)和“可以插入的东西”(扩展)共同组成的集合体。在我们的生活中,电源接线板就是一种“扩展点”,很多“扩展”(也就是电线插头)可以插在它上面。插件管理引擎主要负责插件的注册,在Kettle中不管是以后的扩展还是系统集成的功能,本质上来讲都是插件,管理方式和运行机制是一致的。系统集成的功能点也均实现了对应的扩展接口,只是在插接的说明上略有不同。Kettle的扩展点包括step插件、job entry插件、Database插件、Partioner插件、debugging插件。4. 功能模块Kettle的主要包括四大功能模块:Chef工作(job)设计工具(GUI方式);Kitchen工作(job)执行器(命令行方式);Spoon转换(transform)设计工具(GUI方式);Span转换(trasform)执行器(命令行方式)。(1) Chef工作(job)设计器这是一个GUI工具,操作方式主要通过拖拽。何谓工作?多个作业项,按特定的工作流串联起来,形成一项

      4、工作。正如:我的工作是软件开发。我的作业项是:设计、编码、测试!先设计,如果成功,则编码,否则继续设计,编码完成则开始设计,周而复始,作业完成。1) Chef中的作业项转换:指定更细的转换任务,通过Spoon生成,通过Field来输入参数;SQL:sql语句执行;FTP:下载ftp文件;邮件:发送邮件;检查表是否存在;检查文件是否存在;执行shell脚本:如dos命令。批处理:(注意:windows批处理不能有输出到控制台)。Job包:作为嵌套作业使用。JavaScript执行:如果有自已的Script引擎,可以很方便的替换成自定义Script,来扩充其功能;SFTP:安全的Ftp协议传输;HTTP方式的上传/下载。2) 工作流工作流是作业项的连接方式,分为三种:无条件,成功,失败。为了方便工作流使用,KETTLE提供了几个辅助结点单元(也可将其作为简单的作业项):Start单元:任务必须由此开始。设计作业时,以此为起点。OK单元:可以编制做为中间任务单元,且进行脚本编制,用来控制流程。ERROR单元:用途同上。DUMMY单元:什么都不做,主要是用来支持多分支的情况。3) 存储方式支持

      5、XML存储,或存储到指定数据库中。一些默认的配置(如数据库存储位置),在系统的用户目录下,单独建立了一个.Kettle目录,用来保存用户的这些设置。4) LogView:可查看执行日志。(2) Kitchen作业执行器是一个作业执行引擎,用来执行作业。这是一个命令行执行工具,参数如下: -rep : Repository name任务包所在存储名 -user : Repository username执行人 -pass : Repository password执行人密码 -job : The name of the job to launch任务包名称 -dir : The directory (dont forget the leading / or /) -file : The filename (Job XML) to launch -level : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing)指定日志级别 -log : The logging file to write to指定日志文

      6、件 -listdir: List the directories in the repository列出指定存储中的目录结构。 -listjobs : List the jobs in the specified directory列出指定目录下的所有任务 -listrep: List the defined repositories列出所有的存储 -norep : Dont log into the repository不写日志(3) Spoon转换过程设计器 GUI工作,用来设计数据转换过程,创建的转换可以由Pan来执行,也可以被Chef所包含,作为作业中的一个作业项。1) Input-Steps:输入步骤Text file input:文本文件输入可以支持多文件合并,有不少参数,基本一看参数名就能明白其意图。Table input:数据表输入实际上是视图方式输入,因为输入的是sql语句。当然,需要指定数据源(数据源的定制方式在后面讲一下)Get system info:取系统信息就是取一些固定的系统环境值,如本月最后一天的时间,本机的IP地址之类。Generate Rows:生成

      7、多行。这个需要匹配使用,主要用于生成多行的数据输入,比如配合Add sequence可以生成一个指定序号的数据列。XBase InputExcel InputXML Input2) Output-Steps:输出步聚Text file output:文本文件输出。这个用来作测试蛮好,呵呵。很方便的看到转换的输出。Table output:输出到目的表。Insert/Update:目的表和输入数据行进行比较,然后有选择的执行增加,更新操作。Update:同上,只是不支持增加操作。XML Output:XML输出。3) Look-up:查找操作l Data Basel Streaml Procedurel Database join4) Transform转换l Select values对输入的行记录数据的字段进行更改(更改数据类型,更改字段名或删除)数据类型变更时,数据的转换有固定规则,可简单定制参数。可用来进行数据表的改装。l Filter rows对输入的行记录进行指定复杂条件的过滤。用途可扩充sql语句现有的过滤功能。但现有提供逻辑功能超出标准sql的不多。l Sort rows

      8、对指定的列以升序或降序排序,当排序的行数超过5000时需要临时表。l Add sequence为数据流增加一个序列,这个配合其它Step(Generate rows, rows join),可以生成序列表,如日期维度表(年、月、日)。l Dummy不做任何处理,主要用来作为分支节点。l Join Rows对所有输入流做笛卡儿乘积。l Aggregate聚合,分组处理l Group by分组,用途可扩充sql语句现有的分组,聚合函数。但我想可能会有其它方式的sql语句能实现。l Java Script value使用mozilla的rhino作为脚本语言,并提供了很多函数,用户可以在脚本中使用这些函数。l Row Normaliser该步骤可以从透视表中还原数据到事实表,通过指定维度字段及其分类值,度量字段,最终还原出事实表数据。l Unique rows去掉输入流中的重复行,在使用该节点前要先排序,否则只能删除连续的重复行。l Calculator提供了一组函数对列值进行运算,用该方式比用户自定义JAVA SCRIPT脚本速度更快。l Merge Rows用于比较两组输入数据,一般用于

      9、更新后的数据重新导入到数据仓库中。l Add constants:增加常量值。l Row denormaliser同Normaliser过程相反。l Row flattener表扁平化处理,指定需处理的字段和扃平化后的新字段,将其它字段做为组合Key进行扃平化处理。除了上述基本节点类型外还定义了扩展节点类型SPLITFIELDS:按指定分隔符拆分字段;EXECUTE SQL SCRIPT:执行SQL语句;CUBE INPUT:CUBE输入;CUBE OUTPUT:CUBE输出。(4) Pan转换的执行工具命令行执行方式,可以执行由Spoon生成的转换任务。同样,不支持调度。参数与Kitchen类似。(5) 其它l Connection可以配置多个数据源,在Job或是Trans中使用,这意味着可以实现跨数据库的任务。支持大多数市面上流行的数据库。5. 概念模型Kettle的执行分为两个层次:Job和Transformation。两个层次的最主要区别在于数据传递和运行方式。(1) Transformation(转换)Transformation(转换)是由一系列被称之为step(步骤)的逻辑工作的网络。转换本质上是数据流。下图是一个转换的例子,这个转换从文本文件中读取数据,过滤,然后排序,最后将数据加载到数据库。本质

      《Kettle体系结构与源码分析--精选文档》由会员博****1分享,可在线阅读,更多相关《Kettle体系结构与源码分析--精选文档》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.