首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
kettle中的chef
2024-11-05
kettle简介(整体架构,运行方式,使用方法)
项目负责人Matt的说法:把各种数据放到一个壶里,然后呢,以一种你希望的格式流出.呵呵,外国人都很有联想力.看了提供的文档,然后对发布程序的简单试用后,可以很清楚得看到Kettle的四大块: Chef--工作(job)设计工具 (GUI方式) Kitchen--工作(job)执行器 (命令行方式) Spoon--转换(transform)设计工具(GUI方式) pan--转换(trasform)执行器(命令行方式) 嗯,厨师已经在厨房里,勺子和盘子一应俱全,且看能做出如何的大餐? 一:Chef-
kettle中全局变量的设置
设置全局变量. 找到.properties文件: 在文件中设置值: 在kettle中新建一个job(不用做任何设置): 转换中获取便元的设置: 重启kettle的执行结果:
kettle中调用java类
kettle中调用java类 有时须要在kettle调用java类,如:验证.查询或自己定义加密等.有时甚至连主要的数据訪问都不那么简单,如获取一个存储文件或使用一个数据库连接,某些数据源可能封装在应用程序中,手工使用自己定义的javaclient訪问是唯一的方法. 本文介绍怎样在kettle中调用java类.演示样例代码在这里下载. 注:假设你使用kettle4.0及以上版本号.也你也能够使用user defined java class 步骤实现. Modified Java Scrip
kettle中使用JavaScript的一个例子
最近在使用kettle的时候遇到一个问题,需要对输入的一个字段进行格式化,逻辑比较复杂(需要做替换掉指定的字符串,然后将数字部分不足四位的数前边补0等操作),kettle中没有提供直接的插件来支持复杂的业务逻辑处理,所以就自己写代码来处理. kettle中可以支持Java代码和JavaScript代码,java代码我尝试了几次,不是太稳定,所以就使用了JavaScript 1.在左侧选择脚本中的 JavaScript代码 2.上个步骤传过来的字段 都在Input fields中,在JavaScr
关于NLPIR应用在KETTLE中的探索
一:什么是NLPIR? NLPIR汉语分词系统(自然语言处理与信息检索共享平台),主要功能包括中文分词:词性标注:命名实体识别:用户词典功能:支持GBK编码.UTF8编码.BIG5编码.新增微博分词.新词发现与关键词提取:张华平博士先后倾力打造十余年,内核升级10次. 全球用户突破20万,先后获得了2010年钱伟长中文信息处理科学技术奖一等奖,2003年国际SIGHAN分词大赛综合第一名,2002年国内973评测综合第一名. 二:我们使用NLPIR可以做什么? 三:如何把分词算法用到我们的ETL
Kettle中根据一个输入行派生出多个输出行
依然在北京,早上停电了,整个人感觉对不好了,接下来就说一下在使用ETL工具kettle做数据校验的时候遇到的一些问题,一级解决方案. 1:数据校验效果图下图: 原始表数据(需要校验的表数据) 对上表数据进行校验,校验规则,order_nane.order_type不为空,order_money2>order_money2视为有效 校验结果如下图所示: 在展现工具BIEE中具有会写功能,根据上面检查结果,可以把正确结果会写到数据库 2:kettle中的处理 1:日志表结果如1中的图示 2:需要ch
Kettle中txt类型数据源作为输入需要注意的地方
文本类型在kettle中作为数据源的时候,需要注意的几点,ktr的机构如下图 1:txt文本的格式 2:文本输入控件的设置 --2.1:选择文件所在物理位置 --2.2:设置分隔符,注意头部数量去掉,不然第一行可能会丢掉,当然也可以根据这里设置从第几行开始抽取 --2.3:设置数据类型和字段名 PS:需要特别注意的就是文本文件的格式,文本中用:或者 | 或者 /做分割,那么设置分割字符后,数据就是分割后的多个列组成的一行数据每一个列名是在 文本输入控件中随意指定好的,在后面的data flow里
kettle中使用javascript步骤和fireToDB函数实现自己定义数据库查询
kettle中使用javascript步骤和fireToDB函数实现自己定义数据库查询 如果你须要实现非传统的数据库查询操作.为了讨论这样的情景,我们如果你须要读取数据库中的正則表達式,然后检查输入的每行的字段匹配表达式的个数. 在javascript步骤运行数据库查询 在javascript步骤初始化的时候,查询数据库.获取正則表達式记录集.然后每一行的输入数据循环检查是否匹配表达式,假设匹配.记录变量加一,最后把结果写到到前行的新增字段中. 思路非常清楚,可是怎样在javascript步骤实
在kettle中实现数据验证和检查
在kettle中实现数据验证和检查 在ETL项目,输入数据通常不能保证一致性.在kettle中有一些步骤能够实现数据验证或检查.验证步骤能够在一些计算的基础上验证行货字段:过滤步骤实现数据过滤:javascript步骤能够实现更复杂的计算. 通常以某种方式查看那些数据是有缺陷的也是实用的,由于大多数ETL是无人值守执行的,所以通常ETL程序会把这些缺陷数据通知给ETL开发人员或管理员.建议把这些问题数据行保存到一个特定的公共表格中,以便跟踪这些数据:那么该表格应该包含一些元信息,如:执行转换的名
Kettle中ETL的效率优化
ETL效率优化 开启数据库日志记录及性能监控 如果我们想要优化一个ETL(KTR或者KJB)的性能,我们首先需要知道的就是它的瓶颈在哪里.而这些信息一般只能在ETL运行的步骤度量中看到,并且是不会持久化的.如果你希望把一些数据记录下来,帮助以后进行查阅,那么可以开启数据库日志和性能监控. 作业 Edit -> Settings -> Log 具体设置过程就不细讲了,很简单. 转化 Edit -> Settings -> Logging 这时开启了日志记录,还需要设置性能监控 Edi
Kettle 中的循环
说道循环,小伙伴们肯定不陌生,就是重复干一件事:而kettle中的循环一般是发生在job中,因为job是串行执行的: kettle的循环有两种,一种是通过js脚本,另外一种是通过遍历前面步骤返回的每一行. 下面是我写的伪代码,我将使用Kettle来实现这段代码: array = ['sys1','sys2','sys3','sys4'] for variable in array: if variable == 'sys1' : print('%s被调用'%(variab
Kettle中JavaScript内置函数说明
本文链接:https://blog.csdn.net/u010192145/article/details/102220563 我们在使用JavaScript组件的时候,在左侧核心树对象栏中可以看到Kettle为我们提供了很多简洁强大的内置函数,帮助我们在写脚本的时候对数据.参数变量等能很轻松的做处理,体验编码的感觉.本篇将详细介绍JavaScript组件中的函数功能 脚本组件包含的函数主要包括六大类,分别是: 字符串类型的函数(String Functions) 浮点型的函数(Numeric
kettle中含有参数传递的定时任务
(1)新建一个作业(新建->作业),并在控制面板右键: (2)设置一个命令参数: (3)把作业的参数传递给转换: (4)在转换中右键设置转换属性: (5)接收作业中设置的传递参数: (6)参数的获取: (7)用命令行执行此.kjb文件: 进入到kitchen目录下 执行的命令: 数据库设计: 一: 二: 附加( 附加部分转发自:http://www.cnblogs.com/loren-love-xixi/articles/5716774.html): 1.ktr的运行:运行transformat
kettle中变量的设置和使用介绍
有没有能统一管理一个参数,然后让所有的transformation和job都可以读到呢? 答案是有 1.首先,打开.kettle\kettle.properties(个人主机是:C:\Users\for_elegant\.kettle),直接在里面定义,(注意这个文件需要与spoon.bat放在同一个目录下面)比如: paramName=to_char(sysdate,'yyyymmdd') 这里支持数据库函数, 说的更直白点,就是这里定义是个啥,那么在transformation里边取到的它就
Kettle中通过触发器方式实现数据 增量更新
在使用Kettle进行数据同步的时候, 共有 1.使用时间戳进行数据增量更新 2.使用数据库日志进行数据增量更新 3.使用触发器+快照表 进行数据增量更新 今天要介绍的是第3中方法. 实验的思路是这样的,在进行数据同步的时候, 源数据表为A表, A表要对 目标表(target table) B 表和C表进行数据的同步更新. 即A表中的对应字段发生变化之后, 会通过触发器将对应变化的字段在A表中的主键值写入到一个临时表temp中(该表作为快照表使用). 快照表中只有两个字段,一个是temp_id,
Kettle中忽略错误行继续执行
在kettle执行的过程中,如果遇到错误,kettle会停止运行.在某些时候,并不希望kettle停止运行,所以就要处理下这些错误行. 例如这两天发现在一个转换中,总数出现一些不规则数据,这些数据一出现,就会导致转换停止. 解决办法: 因为是垃圾数据,所以说,这些数据不要也没什么影响. 如下图,在表输出上勾选[忽略插入错误],之后再运行时,就能成功,但是因为这样不是批量插入,插入速度上要比批量插入的模式慢很多.
Kettle 中转换(transformation)的执行过程
1,Spoon.java的main方法是整个Kettle运行的入口.当打开Kettle的设计器界面后,可以在其中设计作业和转换.这里讨论转换的执行过程. 2,设计好一个转换后,转换保存的本地文件是 .ktr文件.从 .ktr文件中可以读取出该转换的元数据transMeta. 3,点击运行按钮时,触发监听器,调用Spoon.java 的runFile() ,在runFile里面调用 executeFile().在executeFile()里面获得了transMeta数据. public void
Kettle中调用用户自定义的jar包
ETL工具断断续续的也接触了 Informatica,Kettle, SSIS,个人感觉Info很强大但是也很贵,而且有着一些神秘感.Kettle 4.0版本以来已经有了User defined java class组件,使用户可以写Java代码 让kettle来调用,这就说明了很多kettle不能处理的东西我们可以通过Java代码来实现,步骤如下: 一:创建Java Project 二:导出Jar包 在main方法中测试Java Project方法无误后 ,导出为jar包,如下图所示
kettle中执行sql语句
一.直接执行sql,不添加任何参数 1.先找出执行sql语句的控件 2.打开控件,填写要执行的sql语句,主要下图中的红框中选项,后面会介绍各个选项的作用 二.执行sql,变量替换选项,变量指的是kettle相应作用域中的变量(如${report_time}) 该方式用到了变量替换选项,替换sql语句中的${}变量 三.执行sql,执行每一行选项 该选项可以接收上一步骤中的批量输出,比如字段选择控件中的结果输出,有n个结果,则sql会被执行n次 这样的话就相当于执行了两条update语句 upd
利用kettle中的JS来完成ETL数据校验
最近参与了一个信托行业的BI项目,由于信托业务系统设计的问题,很多都是用户手工录入的数据,也有一些是需要分析的但是用户没有录入的数据,针对这样的数据质量,我们就要在ETL抽取的过程中来对数据流进行校验,今天我们就说一下如何利用ETL开源工具kettle来完成对数据的基础性校验 1:非空校验 ;} 2:唯一校验 var uniquesql_item_id = "SELECT count(*) FROM titem where item_id="+ITEM_ID; []==;} 3:标准化
Kettle中配置oracle RAC
由于项目中使用了oracle v-ip做了oracle数据库集群,现在需要把项目中程序进行升级. 原来的程序中直接使用的是JDBC然后配置的kettle.properties配置文件,如下图: 根据项目需要,查看了相关资料oracle官网说明如下: 大体意思就是: ·设置为native(JDBC)链接方式 ·将hostname跟port设置为空(port或设置为-1) ·然后将database name设置为以下三种方式中的一种 (DESCRIPTION = (ADDRESS = (PROTOC
热门专题
vue在elementui中使用全局遮罩层
mysql写不进 只读模式
memtester测试被kill掉
centos服务器设置微软雅黑字体
Unity3D涂涂乐
python 带小数的天数
linux mysql启动日志
servlet查询,缓存一样
代码大全2pdf百度云
C# 这台计算机上缺少此项目引用的 NuGet 程序包
protel 99显示不能大面积覆铜是怎么回事
python django 创建带下划线的应用名
fastreport 预览
navicat 内存溢出
atcoder 并查集
android edtext 监听是否获取焦点
mysql float的最大值
node.js如何防止越权
Chrome渲染分析之Timeline工具
linux编译静态库