kettle工具使用一二三

1: 关于ID生成器。 如果一个转化流程里的两个分支分别使用了Generate ID组件, 请注意“计数器名称”,这个很重要。 1) 如果改名字不同,则最总汇总结果中的id是会分别生成的,也就是说会出现重复的id。

2) 如果名字相同,最终结果中id是不会重复的。

2:关于序列生成器 首先抱歉,上面所说的“Generate ID“组件,其实指的就是序列生成器。 kettle5.3中包含两个序列生成器组件,一个是”增加序列“,一个是”根据字段值来改变序列“。 1)增加序列 有两种用法: a. 使用数据库来生成序列。 这种用法是需要连接数据库,如Oracle,并且指定一个sequence名。其原理是利用数据库本身的功能来辅助生成序列。 b. 使用转换计数器来生成序列 通常指定一个”计数器名称”,并指定起始值、步进值、最大值三个参数。可见,其用法与在数据库里创建sequence相同。 2)根据字段值来改变序列 这个生成器的核心用法在于, 根据上个步骤的输出流(对生成器来说是输入流)的某一个或几个字段的变化来生成序列。对于输入流,如果指定的某一个或某几个字段的值没有变化,那么序列生成器会从起始值开始,根据规则来生成序列;如果变化了,序列生成器则从起始值重新开始生成序列。

应用场景,参看这样的输入流图例:

发现”group“字段具有重复性,如果要依据每个不同的group值来重新生成序列,序列生成器的配置可以如下:

在序列器编辑中,指定”group“字段作为是序列器是否重新从起始值开始的判断依据。

最终生成的数据如下:

序列生成器的用法解释到此结束。

2:关于分析查询组件(analytic query) 这个组件的作用相当奇特,它可以在一个输入流中根据当前数据行往上回溯或者往下预查询一个数据行(一条记录)中的某些字段的值,回溯或者预查询的位置能以参数的方式指定。 另一个奇特之处在于,它可以在输入流中指定一个或多个字段,然后依据这些字段对输入流中的数据进行分组。依据当前数据行的位置, 回溯或者预查询其它数据行的字段的值时,同时还要参考分组字段的值是否有变化。 如果回溯或者预查询的数据行的分组字段跟当前行不同,那么返回null,否则的话返回确定的值。 以上是该组件的核心用法,需多读并用心理解。 以下举例说明。 测试表简短说明: 一个教师信息表中有rownum字段,代表数据行号; 另一个字段是教师能力Faculty字段(取值01,02,03等)。 很多教师都拥有相同的Faculty值。

接下来配置分析查询组件,如图:

在分组字段加入Faculty字段, 然后在“要取值的字段“中指定要回溯或者要预查询的字段名。 ”新增加的字段“的意思是,回溯或者预查询的字段的值将以什么字段名显示在本条数据里。“类型”里要指明是向前还是向后查询,N的意思不用解释了吧,相信聪明的你一定看的懂。

下面给出一个执行的样例:

上图中,LEAD_SEQ代表向前2行seqence字段的值,LAG_SEQ代表向后两行sequence的值,LEAD4_SEQ代表向前4行sequence的值。 请千万注意该值的变化,有Faculty字段在起作用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向前齐步走

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值