资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2008年12月15日,赛意信息科技有限公司,DW DataStage ETL 案例培训 高级应用,缓慢变化维的DataStage实现,概述,部门维是DW常见的纬度,在业务系统维护基础数据,但业务系统一般只保留最新数据,因此DW需要保留历史数据,即实现缓慢变化维。,对于缓慢变化维,常见的做法是新增Begin_Date和End_Date两个字段,通过这两个字段配置记录的有效性;另外,对于在业务系统已经被删除的记录,可在DW新增DELETE_FLAG字段加以标识。,在业务系统里,部门表的唯一索引是DEPT_CODE,而在DW里,部门维表的唯一索引有两个:FIN_DEPT_ID、DEPT_CODE+BEGIN_DATE。,概述(续1),在部门表里,在2008-12-18那天对下面几个记录做了增删改的处理:新增绿洲这个部门、删除美洲这个部门,行政部的第一部门地址由浙江华为修改为广东华为。,概述(续2),BIS在2008-12-19抽取部门表数据,并在DW里经过缓慢变化处理后,数据在部门维表存储如下:,DataStage ETL 高级应用,配置Src_Before:从部门维取出当前有效的部门维(Src_After从源表取出数据),取出当前有效的 部门维,DataStage ETL 高级应用,对比修改前和修改后的数据,在Change_Capture捕捉发生变化的数据,DEPT_CODE作为Key字段,DataStage ETL 高级应用,DSLink11输出的数据流如下:,DataStage ETL 高级应用,在Filter根据change_code对增删改数据进行分流 Output Link = 0 = Lnk_Edit_Data Output Link = 1 = Lnk_Ins_Del_Data,DEPT_CODE作为Key字段,这一块分流用作DEBUG,输出到Peek,DataStage ETL 高级应用,在Orac_Target_Table通过SQL写入新增的数据到部门维表,更新被删除数据的Delete_Flag为Y,DataStage ETL 高级应用,下面就是在部门维表里经过处理的新增、删除数据,DataStage ETL 高级应用,Lnk_Edt_Data的数据经过Copy_14拷贝后,一条输出数据流DSLink17与Src_Source的数据流在Join_46关联,取出Src_Source里被修改前的数据:,DataStage ETL 高级应用,在Column_Generator_25给修改前的数据增加change_code字段:,DataStage ETL 高级应用,设置change_code的数据生成规则,DataStage ETL 高级应用,对于修改后的数据也需要新增字段与修改前数据进行匹配:在Column_Generator_47增加Begin_Date等字段,DataStage ETL 高级应用,设置Begin_Date、End_Date等字段的数据生成规则,DataStage ETL 高级应用,然后,在Funnel_27对两个数据流进行合并,输出数据流在Transformer_30根据change_code对Begin_Date等字段进行处理,DataStage ETL 高级应用,在Oracle_Enterprise_32通过SQL写入修改后的数据到部门维表,更新修改前的数据的End_Date等字段,DataStage ETL 高级应用,下面就是在部门维表里经过处理的修改前和修改后的数据,DataStage ETL 高级应用,謝謝大家,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号