码迷,mamicode.com
首页 > 其他好文 > 详细

ETL工具kettle怎么进行增量数据抽取:一、通过标志位

时间:2018-08-24 00:28:27      阅读:1132      评论:0      收藏:0      [点我收藏+]

标签:src   process   介绍   引入   需要   shadow   好处   理解   ges   

在平时的操作过程中可能大家需要经常进行增量的数据抽取,方法有很多种,接下来几天讲给大家介绍几种我本人经常使用的几种方式;
首先给大家介绍我最喜欢的一种,就是通过标志位;
操纵方法如下,在源表中增加一个标识字段,比如tongbu,当然可以为它设个默认值N,然后我们再增加一个索引nvl(tongbu,‘N’),增加索引是为了提高查询的速度,接下来我们来写具体的流程;
技术分享图片
我写的这个流程非常简单,有的朋友们会非常疑惑为什么我会有更新组件,先卖个关子咱们继续;
在写 表输入中的sql时,我们引入了一个伪列gx,并赋值Y,这有什么有呢,继续看;
技术分享图片
大家可以看到我在表输入的sql中特意框起来两块,where条件后面的就用到了我们之前建的索引,这个语句的逻辑解释为当tongbu这个字段的值为空或者为N的时候我们认为这些数据是未同步到目标表的;
当原表中的数据同步到目标表之后我们回头将伪列gx的值(Y)赋给这条数据的标志位tongbu,那么这时tongbu的值就变成了Y,此时我们就认为这条数据已经同步到目标标了,在下一个执行计划中就不会继续同步它;如图
技术分享图片

这种方法的好处是非常直观,你可以通过标志位可以很清楚的知道这条数据有没有同步,特别是需要频繁同步的时候;
当然缺点也是很明显的,会对原表造成一定的压力,并且速度可能会收到一定的影响;

如果有什么迷糊,可以给我留言(这种方法理解起来稍微有一点点压力);
其实一句话:根据状态为确定有没有同步,没同步的同步后修改状态位;

ETL工具kettle怎么进行增量数据抽取:一、通过标志位

标签:src   process   介绍   引入   需要   shadow   好处   理解   ges   

原文地址:http://blog.51cto.com/13602563/2163559

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!