Kettle数据清洗(案例一)

浏览: 4422

一、整体流程图(去除重复记录,脏记录):


二、各个步骤如下:

1、VEH_FACT_VEHICLE

with veh_zc_zr_gh as ( 
 select 
      v.xh,
      v.GLBM as glbmbm,
      v.XZQH as xzqhbm
      ,HPZL as hpzlbm,
      FZJG as fzjgbm,
      SYQ as syqbm,
      SYXZ as syxzbm,
      CLLX as cllxbm,
      CLLY as cllYbm,
      xh as clbm, 
      to_char(fprq, 'YYYYMMDD') as sprqbm,
      to_char(ccdjrq, 'YYYYMMDD') as fzrqbm, 
      to_char(yxqz, 'YYYYMMDD') as yxqzbm,
       1 as bys,
       decode(clly,'1',1,0) as zcs, 
       decode(clly,'2',1,0) as zrs,
       decode(clly,'3',1,0) as ghs,
     /*  0 as zchus,
       0 as zxs,*/
       to_char(v.qzbfqz,'yyyymmdd') as BFRQBM, --
       1 as bfs
        from vehicle v
        --where ccdjrq between v_dt1 and v_dt2
        where --zt not in ('B','E','M') ; --
              --fzrq between v_dt1 and v_dt2 and --
              Instr(zt,'B')=0 and Instr(zt,'E')=0 and Instr(zt,'M')=0
              --ccdjrq<to_date('20130101','yyyymmdd');
     )
     select   t1.*,
     to_char(v.zxrq,'yyyymmdd') as ZXRQBM,-- 
     nvl2(v.xh,1,0) as zxs,
     to_char(vv.djrq,'yyyymmdd') as ZCRQBM,-- 
     nvl2(v.xh,1,0) as zchus
     from veh_zc_zr_gh t1 
     left join   vehicle_logout v on t1.xh=v.xh    
     left join   veh_out vv on vv.xh= t1.xh       

 2、Sort Rows

        


3、Unique Rows


4、Javascript


var filterv=0;
var tem=trimStr(XH)
var tem=tem.length;
if(tem==14)
{
filterv=1;
}
else
{
filterv=0;
}
function trimStr(str){return str.replace(/(^\s*)|(\s*$)/g,"");}

5、Field Selection

选择需要的字段,去除额外的字段

6、Switch/Case



7、Over

附:

Error1:

Switch/Case 步骤本能识别js中数据值

解决办法:

把Case值数据类型选上

Error2:

查看数据流程时,发现表输入记录个数为117081,而经过去除重复记录之后数据条数为117032,而oracle中查询重复记录条数为0(SELECT xh,count(1) FROM VEHICLE group by xh  having  count(1)>1),原因是表输入sql出现了重复记录,即步骤一。

记录日常点滴,方便自己,帮助他人!

推荐 5
本文由 华青莲 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

2 个评论

非常有用的小记录,谢谢
嘻嘻

要回复文章请先登录注册