kettle学习笔记及实践】的更多相关文章

转自萤火的萤 最近在用kettle迁移数据,从对kettle一点不会到比较熟悉,对于期间的一些问题和坑做了记录和总结,内容涵盖了使用的经验和技巧,踩到的坑.最佳实践和优化前后结果对比. 常用转换组件 计算形成新字段:只限算术运算,并且选择固定过滤记录:元表某字段按照某个条件分流,满足条件的到一个表,不满足的到另一个表,这两个目标表都必须有.Switch/Case:和过滤记录类似,可以多个条件判断,并且有默认转向条件,可以完美替换过滤记录组建记录分组:group by 组建未能正常按照预期理解运行…
java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类装载器和安全管理器是可以被动态扩展的,或者说,他们是可以由用户自己定制的,今天我们就是动手试试,怎么做这部分的实践,当然,在阅读本篇之前,至少要阅读过笔记三. 下面我们先来动态扩展一个类装载器,当然这只是一个比较小的demo,旨在让大家有个比较形象的概念. 第一步,首先定义自己的类装载器,从Clas…
目录 Kettle学习笔记(一)- 环境部署及运行 Kettle学习笔记(二)- 基本操作 kettle学习笔记(三)- 定时任务的脚本执行 Kettle学习笔记(四)- 总结 Kettle中设置编码格式 如果处理的数据中有中文,需要对中文设置编码格式,一般是utf8格式,彻底的修改格式的方法就是,修改spoon.bat文件中增加如下信息:"-Dfile.encoding=UTF-8": Kettle中调整运行性能 修改参数 Kettle默认的性能适用于普通的一般硬件,如果自己的电脑硬…
目录 Kettle学习笔记(一)- 环境部署及运行 Kettle学习笔记(二)- 基本操作 kettle学习笔记(三)- 定时任务的脚本执行 Kettle学习笔记(四)- 总结 打开Kettle 打开时间略长,请耐心等待. 常用的控件说明 这里先对控件做下简单说明,方便后面使用. 通用控件 通用--START:作业开始: 通用--作业:指定某个作业循环执行: 通用--转换:指定某个转换,加入到作业中来: 通用--设置变量:设置变量,为了转换或者作业中获取变量: 通用--成功:作业完成操作: 通用…
目录 Kettle学习笔记(一)-环境部署及运行 Kettle学习笔记(二)- 基本操作 kettle学习笔记(三)- 定时任务的脚本执行 Kettle学习笔记(四)- 总结 Kettle简介 Kettle是一款国外开源的ETL工具,纯java编写,可以在Windows.Linux.Unix上运行,s数据抽取高效稳定.Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出.Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提…
安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用AccessController的checkPerssiom方法,访问控制器AccessController的栈检查机制又遍历整个PerssiomCollection来判断具体拥有什么权限一旦发现栈中一个权限不允许的时候抛出异常否则简单的返回,这个过程实际上比我的描述要复杂得多,这里我只是简单的一句带过,因为这里涉及到很多比较后面的知识点. 下面来尝试一下写一个非常简单…
STL实践与分析 --容器特有的算法 与其它顺序容器所支持的操作相比,标准库为list容器定义了更精细的操作集合,使它不必仅仅依赖于泛型操作.当中非常大的一个原因就是list容器不是依照内存中的顺序进行布局的,不支持随即訪问,这样,在list容器上就不能使用随即訪问迭代器的算法,如sort等:还有其它的一些算法如:merge.remove.reverse和unique,尽管能够用在list上,但却付出了高昂的性能代价.因此标准库结合list的内部结构,编写出了更快算法: list容器特有的操作…
概述 基于ZooKeeper + ActiveMQ + replicatedLevelDB,在Windows平台的主从部署方案. 主从部署可以提供数据备份.容错[1]的功能,但是不能提供负载均衡的功能.   注: 容错:主服务器宕掉,再选出一台作为作为主服务器,来提供服务. 部署图   简单说明 ActiveMQ提供了队列.本地持久化的功能,ZooKeeper提供了主从选举的功能.Producers将消息发送给主从队列体系[1],Consumers从主从队列体系中获取消息. 注: [1] 主从队…
概述 以ActiveMQ + Log4j + Spring的技术组合,实现基于消息队列的统一日志服务. 参考:Spring+Log4j+ActiveMQ实现远程记录日志——实战+分析 与参考文章的比较 更新了技术的版本e.g. Spring升级到4.2.0,ActiveMQ升级到5.13.2 更新了依赖e.g. 使用activemq-client 5.13.2替换activemq-core 5.7.0,并取消了多余的spring-jms依赖 精简了配置e.g. 去掉spring.xml中的jms…
一直用SSIS做ETL,越来越感觉这玩意不是亲生的.因此萌生换ETL工具的想法,不过Kettle社区版没什么调度系统,貌似错误处理也不是很方便,且先了解吧. 本文简略的记录了整个软件的使用流程. 开始 Kettle 的几个子程序的功能和启动方式 Spoon.bat: 图形界面方式启动作业和转换设计器. Pan.bat: 命令行方式执行转换. Kitchen.bat: 命令行方式执行作业. Carte.bat: 启动web服务,用于 Kettle 的远程运行或集群运行. Encr.bat: 密码加…
STL实践与分析 --再谈string类型(下) 四.string类型的查找操作 string类型提供了6种查找函数,每种函数以不同形式的find命名.这些操作所有返回string::size_type类型的值,下面标的方式标记查找匹配所发生的位置:或者返回一个string::npos的特殊值,说明查找没有匹配.string类将npos定义为保证大于不论什么有效下标的值. string类型的查找操作(參数在下表定义) s.find(args) 在s中查找args的第一次出现 s.rfind(ar…
STL实践与分析 --再谈迭代器[下] 三.反向迭代器[续:习题] //P355 习题11.19 int main() { vector<int> iVec; for (vector<int>::size_type index = 0; index != 10; ++index) { iVec.push_back(index); } for (vector<int>::reverse_iterator r_iter = iVec.rbegin(); r_iter !=…
STL实践与分析 --概述.初窥算法[上]     标准库容器定义的操作很少.并没有给容器加入大量的功能函数.而是选择提供一组算法,这些算法大都不依赖特定的容器类型,是"泛型"的.可作用在不同类型的容器和不同类型的元素上!     所谓泛型算法:一是由于它们实现共同的操作,所以称之为"算法";而"泛型"指的是它们可以操作在多种容器类型上--不但可作用于vector或list这些标准库类型,还可用在内置数组类型.甚至其它类型的序列上,仅仅要自己定义…
STL实践与分析 --泛型算法的结构 引言: 正如全部的容器都建立在一致的设计模式上一样,算法也具有共同的设计基础. 算法最主要的性质是须要使用的迭代器种类.全部算法都指定了它的每一个迭代器形參可使用的迭代器类型. 比方,假设形參必须为随机訪问迭代器则可提供vector或 deque类型的迭代器,或者提供指向数组的指针. 而其它容器的迭代器不能用在这类算法上. C++还提供了另外两种算法模式:一种模式由算法所带的形參定义;还有一种模式则通过两种函数命名和重载的规范定义. 一.算法的形參模式 大多…
STL实践与分析 --容器适配器 引: 除了顺序容器.标准库还提供了三种顺序容器适配器:queue,priority_queue和stack.适配器是标准库中的概念.包含容器适配器,迭代器适配器和函数适配器. 适配器通用的操作和类型 size_type 一种类型,足以存储此适配器类型的最大对象长度 value_type 0 container_type 基础容器类型,适配器在此容器类型上实现 Aa; 创建一个空适配器,命名为a Aa(c); 创建一个名为a的新适配器.初始化为c的副本 关系操作符…
STL实践与分析 --map类型(上) 引: map是键-值对的集合. map类型通常能够理解为关联数组:能够通过使用键作为下标来获取一个值,正如内置数组类型一样:而关联的本质在于元素的值与某个特定的键相关联,而并不是通过元素在容器中的位置来获取. 一.map对象的定义 1.定义map对象时,必须分别指明键和值的类型: map<string,int> wordCnt; map的构造函数 map<K,V>m; 创建一个名为m的空对象,其键和值的类型分别为K和V map<K,V&…
STL实践与分析 --初窥算法[下] 一.写容器元素的算法 一些算法写入元素值.在使用这些算法写元素时一定要当心.必须.写入输入序列的元素 写入到输入序列的算法本质上是安全的--仅仅会写入与指定输入范围数量同样的元素. 写入到输入序列的一个简单算法是fill函数: fill(iVec.begin(),iVec.end(),10); fill(iVec.begin(),iVec.begin()+iVec.size()/2,0); fill带有.不检查写入操作的算法 fill_n函数带有的參数包括:…
STL实践与分析 --容器的综合应用:文本查询程序 引言: 本章中最重点的实例.由于不须要用到multiset与multimap的内容.于是将这一小节提到了前面.通过这个实例程序,大师分析问题的智慧,大师的编程风格.大师对程序的控制能力,由此可见一斑.因此.我对这一小节的内容差点儿不做改动.或仅仅做非常小的更改(由于有些东西不同人有不同的理解).搬出来.以供大家细致品读. 要求: 我们的程序将读取用户指定的随意文本文件,然后同意用户从该文件里查找单词.查询的结果是该单词出现的次数,并列出每次出现…
STL实践与分析 --再谈迭代器[中] 二.iostream迭代[续] 3.ostream_iterator对象和ostream_iterator对象的使用 能够使用ostream_iterator对象将一个值序列写入流中,其操作过程与使用迭代器将一组值逐个赋值给容器中的元素同样: ostream_iterator<string> out_iter(cout,"\n"); istream_iterator<string> in_iter(cin),eof; wh…
STL实践与分析 --顺序容器的操作(下) 六.訪问元素 假设容器非空,那么容器类型的front和back成员将返回容器的第一个和最后一个元素的引用. [与begin和end的对照:] 1)begin和end返回容器类型的迭代器,而不是引用: 2)end返回容器最后一个元素的下一个位置的迭代器,而back返回容器的最后一个元素的引用! /* *必须保证该list容器非空! *假设容器为空,则if语句内的全部操作都是没有定义的! */ if (!iList.empty()) { list<int>…
一.子程序功能和启动方式介绍 Spoon.bat: 图形界面方式启动作业和转换设计器. Pan.bat: 命令行方式执行转换. Kitchen.bat: 命令行方式执行作业. Carte.bat: 启动web服务,用于 Kettle 的远程运行或集群运行. Encr.bat: 密码加密 转换和作业: Kettle 的 Spoon 设计器用来设计转换(Transformation)和 作业(Job). •转换主要是针对数据的各种处理,一个转换里可以包含多个步骤(Step). •作业是比转换更高一级…
一.概述 数据剖析和数据检验: 用于数据的检查.清洗 . 统计步骤: 提供数据采样和统计的功能 分区: 根据数据里某个字段的值,拆分成多个数据块.输出到不同的库表和文件中. 脚本: Javascript 基础 二.数据剖析和数据检验 1.数据剖析 分析原始数据的数据类型.长度.值域等,属于ETL的第一步 kettle中使用DataCleaner进行数据剖析 首先需要在工具-marketPlace中安装改插件并重启:https://wiki.pentaho.com/pages/viewpage.a…
一.概述 kettle中3个重要的步骤: 子转换/映射 在转换里调用一个子转换,便于封装和重用. 集群 集群模式 变量和参数 变量和参数的用法 二.子转换 1.定义子转换 主要由映射输入与映射输出定义: 这里给出一个从kettle自带的samples中拿出来的示例,详情配置,参考kettle示例 保存这个转换(可以是文件,也可以在资源库),这就是子转换了! 2.调用子转换 子转换的配置: 整个调用的示例如下: // 详细,查看kettle示例 三.集群 Kettle 集群是一个分布式的运行环境,…
一.概述 查询步骤: 用来查询数据源里的数据并合并到主数据流中 . 连接步骤: 结果集通过关键字进行连接 .(与前面的UNION不同) 二.查询步骤 1.流查询 流查询示例:(注意上文中的流查询的限制) // 带有i的流向表示是信息流 2.数据库查询 数据库查询配置示例: 3.web查询 // 相关实例,也可以看kettle包中的examples web中前面应当有表输入,表中存储URL以及相关参数的字段 三.连接步骤 1.记录集连接 2.XML连接 暂不展开…
一.kettle资源库 资源库是用来保存转换任务的,用户通过图形界面创建的的转换任务可以保存在资源库中. 资源库可以使多用户共享转换任务,转换任务在资源库中是以文件夹形式分组管理的,用户可以自定义文件夹名称. 1.ketle资源库元数据 • 资源库 资源库包括文件资源库.数据库资源库 Kettle 4.0 以后资源库类型可以插件扩展 • XML 文件 .ktr 转换文件的XML的根节点必须是 <transformation>. kjb 作业XML的根节点是<job> 2.kettl…
一.概述 1.kettle是什么 Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,绿色无需安装,数据抽取高效稳定.中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出. 更多介绍,参考kettle中文网:http://www.kettle.net.cn/ 2.kettle四大家族 Chef(中文:厨师).Kitchen(中文:厨房).Spoon(中文:勺子).Pan(中文:平底锅)---注意英文发…
学习网址 http://wiki.pentaho.com/display/BAD/Transforming+Data+within+Hive…
STL实践与分析 --泛型算法的结构 引言: 正如全部的容器都建立在一致的设计模式上一样,算法也具有共同的设计基础. 算法最主要的性质是须要使用的迭代器种类.全部算法都指定了它的每一个迭代器形參可使用的迭代器类型.比方,假设形參必须为随机訪问迭代器则可提供vector或 deque类型的迭代器,或者提供指向数组的指针.而其它容器的迭代器不能用在这类算法上. C++还提供了另外两种算法模式:一种模式由算法所带的形參定义;还有一种模式则通过两种函数命名和重载的规范定义. 一.算法的形參模式 大多数的…
STL实践与分析 --引言.pair类型.关联容器 引言:     关联容器与顺序容器的本质差别在于:关联容器通过键[key]来存储和读取元素,而顺序容器则通过元素在容器中的位置顺序的存取元素. map的元素以键-值[key-value]对的形式组织:键用作元素在map中的索引,而值则表示所存储和读取的数据. set仅包括一个键,并有效的支持关于某个键是否存在的查询. 关联容器类型 map 关联数组:元素通过键来存取 Set 大小可变的集合,支持通过键来实现的高速读取 multimap 支持同一…
网上有很多教程,这里我自己做下整理,省得有时忘记,有道是好记性不如烂博客! 先大概描述下Git的各种命令: git init                     #初始化 git clone                  #将远程项目拷贝到本地 git add                    # 提交文件更改(修改和新增) git commit              # 基于当前分支提交修改 git reset                  # 去除某个提交之后的一切提交记…