kettle简介(整体架构,运行方式,使用方法)
项目负责人Matt的说法:把各种数据放到一个壶里,然后呢,以一种你希望的格式流出。呵呵,外国人都很有联想力。看了提供的文档,然后对发布程序的简单试用后,可以很清楚得看到Kettle的四大块:
Kitchen——工作(job)执行器 (命令行方式)
Spoon——转换(transform)设计工具(GUI方式)
pan——转换(trasform)执行器(命令行方式)
这是一个GUI工具,操作方式主要通过拖拖拉拉,勿庸多言,一看就会。何谓工作?多个作业项,按特定的工作流串联起来,开成一项工作。正如:我的工作是软件开发。我的作业项是:设计、编码、测试!先设计,如果成功,则编码,否则继续设计,编码完成则开始设计,周而复始,作业完成。来,看看Chef中的作业项:
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方式的上/下传。
2:OK单元:可以编制做为中间任务单元,且进行脚本编制,用来控制流程。
3:ERROR单元:用途同上。
4:DUMMY单元:啥都不做,主要是用来支持多分支的情况。文档中有例子,不再多说。
支持XML存储,或存储到指定数据库中。一些默认的配置(如数据库存储位置……),在系统的用户目录下,单独建立了一个.Kettle目录,用来保存用户的这些设置。
-user : Repository username 执行人
-pass : Repository password 执行人密码
-job : The name of the job to launch 任务包名称
-dir : The directory (don''t 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 指定日志文件
-listdir : List the directories in the repository 列出指定存储中的目录结构。
-listjobs : List the jobs in the specified directory 列出指定目录下的所有任务
-listrep : List the defined repositories 列出所有的存储
-norep : Don''t log into the repository 不写日志
GUI工作,用来设计数据转换过程,创建的转换可以由Pan来执行,也可以被Chef所包含,作为作业中的一个作业项。下面简单列举一下所有的转换过程。(简单描述,详细的可见Spoon文档)
3.1.1:Text file input:文本文件输入,
可以支持多文件合并,有不少参数,基本一看参数名就能明白其意图。
3.1.2:Table input:数据表输入
实际上是视图方式输入,因为输入的是sql语句。当然,需要指定数据源(数据源的定制方式在后面讲一下)
3.1.3:Get system info:取系统信息
就是取一些固定的系统环境值,如本月最后一天的时间,本机的IP地址之类。
3.1.4:Generate Rows:生成多行。
这个需要匹配使用,主要用于生成多行的数据输入,比如配合Add sequence可以生成一个指定序号的数据列。
3.1.5:XBase Input:
3.1.6:Excel Input:
3.1.7:XML Input:
这三个没啥可讲的,看看参数就明了。
3.2.1:Text file output:文本文件输出。
这个用来作测试蛮好,呵呵。很方便的看到转换的输出。
3.2.2:Table output:输出到目的表。
3.2.3:Insert/Update:目的表和输入数据行进行比较,然后有选择的执行增加,更新操作。
3.2.4:Update:同上,只是不支持增加操作。
3.2.5:XML Output:
DataBase:
Stream:
Procedure:
Database join:
很简单,看看参数就明白了。
3.4.1:Select values: 对输入的行记录数据 的字段进行更改 (更改数据类型,更改字段名或删除)
数据类型变更时,数据的转换有固定规则,可简单定制参数。可用来进行数据表的改装。
3.4.2:Filter rows: 对输入的行记录进行 指定复杂条件 的过滤。
用途可扩充sql语句现有的过滤功能。但现有提供逻辑功能超出标准sql的不多。
3.4.3:Sort rows:对指定的列以升序或降序排序,当排序的行数超过5000时需要临时表。
3.4.4:Add sequence:为数据流增加一个序列,
这个配合其它Step(Generate rows, rows join),可以生成序列表,如日期维度表(年、月、日)。
3.4.5:Dummy:不做任何处理,主要用来作为分支节点。
3.4.7:Aggregate:聚合,分组处理
3.4.8:Group by:分组
用途可扩充sql语句现有的分组,聚合函数。但我想可能会有其它方式的sql语句能实现。
3.4.9:Java Script value:使用mozilla的rhino作为脚本语言,并提供了很多函数,用户可以在脚本中使用这些函数。
3.4.10: Row Normaliser:该步骤可以从透视表中还原数据到事实表,
通过指定维度字段及其分类值,度量字段,最终还原出事实表数据。
3.4.11. Unique rows:去掉输入流中的重复行
在使用该节点前要先排序,否则只能删除连续的重复行。
3.4.12. Calculator:提供了一组函数对列值进行运算,
所介绍,使用该方式比用户自定义JAVA SCRIPT脚本速度更快。
3.4.13. Merge Rows:用于比较两组输入数据,一般用于更新后的数据重新导入到数据仓库中。
3.4.14. Add constants:增加常量值。
这个我没弄明白它的用法???
3.4.15. Row denormaliser:同Normaliser过程相反。
3.4.16. Row flattener:表扁平化处理
指定需处理的字段和扃平化后的新字段,将其它字段做为组合Key进行扃平化处理。
3.5.1:SPLIT FIELDS, 按指定分隔符拆分字段
3.5.2:EXECUTE SQL SCRIPT,执行SQL语句
3.5.3:CUBE INPUT,
3.5.4:CUBE OUTPUT等。
这两个没明白是啥意思。
3.6:其它
存储方式: 与Chef相同。
数据源(Connection);见后。
Hops:setp连接起来,形成Hops。
Plugin step types等节点:这个没仔细看,不知如何制作Plugin step。
LogView:可查看执行日志。
命令行执行方式,可以执行由Spoon生成的转换任务。
同样,不支持调度。
参数与Kitchen类似,可参见Pan的文档。
Connection:
可以配置多个数据源,在Job或是Trans中使用,这意味着可以实现跨数据库的任务。
支持大多数市面上流行的数据库。
1:转换功能全,使用简洁。作业项丰富,流程合理。但缺少调度。
2:java代码,支持的数据源范围广,所以,跨平台性较好。
3:从实际项目的角度看,和其它开源项目类似,主要还是程序员的思维,缺少与实际应用项目(专业领域)的更多接轨,当然,项目实施者的专注点可能在于一个平台框架,而非实际应用(实际应用需要二次开发)。
4:看过了大多数源码,发现源码的可重用性不是太好(缺少大粒度封装),有些关键部分好象有Bug。比如:个别class过于臃肿,线程实现的同步有问题。
5:提供的工具有些小错,如参数的容错处理。
kettle简介(整体架构,运行方式,使用方法)的更多相关文章
- Underscore 整体架构浅析
前言 终于,楼主的「Underscore 源码解读系列」underscore-analysis 即将进入尾声,关注下 timeline 会发现楼主最近加快了解读速度.十一月,多事之秋,最近好多事情搞的 ...
- Linux内核的整体架构简介
1. 前言 本文是“Linux内核分析”系列文章的第一篇,会以内核的核心功能为出发点,描述Linux内核的整体架构,以及架构之下主要的软件子系统.之后,会介绍Linux内核源文件的目录结构,并和各个软 ...
- 1、Shiro简介以及整体架构
1.Shiro概念和作用: 利用shiro可以快速完成权限管理模块的开发 Spring的官网也是用Shiro做安全管理的... Shiro整体架构: 可能你感觉上面的图片很乱,但是你一定要先大体有个印 ...
- Kettle简介
ETL和Kettle简介 ETL即数据抽取(Extract).转换(Transform).装载(Load)的过程.它是构建数据仓库的重要环节.数据仓库是面向主题的.集成的.稳定的且随时间不断变 ...
- SLAM+语音机器人DIY系列:(二)ROS入门——2.ROS系统整体架构
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...
- 万字详解TDengine 2.0整体架构设计思路
导读:涛思数据8月3日将TDengine 的集群功能开源,TDengine具有超强的性能和功能,为什么能做到?它到底有哪些技术创新?今将TDengine的整体设计文档分享出来. 1: 数据模型 物联 ...
- 大家都能看得懂的源码(一)ahooks 整体架构篇
本文是深入浅出 ahooks 源码系列文章的第一篇,该系列已整理成文档-地址.觉得还不错,给个 star 支持一下哈,Thanks. 第一篇主要介绍 ahooks 的背景以及整体架构. React h ...
- 【深入浅出jQuery】源码浅析--整体架构
最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...
- jQuery 2.0.3 源码分析core - 整体架构
拜读一个开源框架,最想学到的就是设计的思想和实现的技巧. 废话不多说,jquery这么多年了分析都写烂了,老早以前就拜读过, 不过这几年都是做移动端,一直御用zepto, 最近抽出点时间把jquery ...
- [转]Android App整体架构设计的思考
1. 架构设计的目的 对程序进行架构设计的原因,归根到底是为了提高生产力.通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合.这样做的好处是使得程序在开发的过程中,开发人员只需要专注于一点, ...
随机推荐
- Android图表库MPAndroidChart(十一)——多层级的堆叠条形图
Android图表库MPAndroidChart(十一)--多层级的堆叠条形图 事实上这个也是条形图的一种扩展,我们看下效果就知道了 是吧,他一般满足的需求就是同类数据比较了,不过目前我还真没看过哪个 ...
- [Mysql]由Data truncated for column联想到的sql_mode配置
系统日志中出现了 ata truncated for column 'agent' at row 1 mysql出现这个问题的原因,无非就是字符集设置 或者是 字段过长导致的. mysql在初始化的时 ...
- Java安全套接字扩展——JSSE
上节已经介绍了SSL/TLS协议的通信模式,而对于这些底层协议,如果要每个开发者都自己去实现显然会带来不必要的麻烦,正是为了解决这个问题Java为广大开发者提供了Java安全套接字扩展--JSSE,它 ...
- 全文检索Lucene (2)
接着全文检索Lucene (1) . 下面我们来深入的研究一下,如何使用Lucene! 从全文检索Lucene (1)中我们可以看出,Lucene就好比一个双向的工作流,一方面是对索引库的维护,另一方 ...
- Java进阶(三十八)快速排序
Java进阶(三十八)快速排序 前言 有没有既不浪费空间又可以快一点的排序算法呢?那就是"快速排序"啦!光听这个名字是不是就觉得很高端呢. 假设我们现在对"6 1 2 7 ...
- Win 10 下 android studio显示 Intel haxm无法安装,以及VT-X和hyper-x的冲突问题
我 的电脑是神舟战神k650c i7 D4,处理器是Intel core i7 4710-MQ,系统是win 10的 我心血来潮想学习一下安卓开发,就首先安装了android s ...
- 精通CSS+DIV网页样式与布局--页面背景
上篇博客,我们主要简单的总结了CSS的图片效果,我们这回来讲讲CSS如何对网页的背景进行设置,网页的背景是整个网页的重要组成部分,她直接决定了整个网页的风格和色调.这篇博客简单的总结一下如何用CSS来 ...
- jquery 只读
大家都理解这是什么,正常的写法如下: if (status == true) { $("#minDelistStr").val(totalAmount);// 去掉首部的" ...
- mysql进阶(二十四)防御SQL注入的方法总结
防御SQL注入的方法总结 这篇文章主要讲解了防御SQL注入的方法,介绍了什么是注入,注入的原因是什么,以及如何防御,需要的朋友可以参考下. SQL注入是一类危害极大的攻击形式.虽然危害很大,但是防御却 ...
- 欢迎进入我的个人博客 anzhan.me
CSDN的博客依旧会更新,但是还是专注于技术. 个人的博客 http://anzhan.me 不单单会同步csdn的技术文章,还会有个人的更多私人的分享,包括旅行日记.欢迎各位朋友经常去看看,大家有私 ...