粤磊 informatica powercenter学习笔记(六)

  缓慢变化维的处理

 

DW的经典四大特点就是  面向主题,集成,反映历史变化,数据相对稳定。

为了反映历史变化,比如我们常见的组织维度的年度变更,财务成本中心的变更都需要对 组织表或成本中心表先做判断,如果变更的记录在目标表中存在就更新,如果目标表中没有,我们就插入。

 

其实这个问题,如果直接在DB中,用高级的SQL语句也可实现:

 

ENVORACLE  T1TARGET

DROP TABLE INFO.TARGET CASCADE CONSTRAINTS;

 

CREATE TABLE INFO.TARGET

(

  SS_ID    VARCHAR2(5 BYTE),

  SS_NAME  VARCHAR2(72 BYTE),

  MEMO     VARCHAR2(4 BYTE)

)

TABLESPACE USERS

PCTUSED    0

PCTFREE    10

INITRANS   1

MAXTRANS   255

STORAGE    (

            INITIAL          64K

            MINEXTENTS       1

            MAXEXTENTS       UNLIMITED

            PCTINCREASE      0

            BUFFER_POOL      DEFAULT

           )

LOGGING

NOCOMPRESS

NOCACHE

NOPARALLEL

MONITORING;

 

DROP TABLE INFO.T2 CASCADE CONSTRAINTS;

 

CREATE TABLE INFO.T2

(

  SS_ID    VARCHAR2(5 BYTE),

  SS_NAME  VARCHAR2(72 BYTE),

  MEMO     VARCHAR2(4 BYTE)

)

TABLESPACE USERS

PCTUSED    0

PCTFREE    10

INITRANS   1

MAXTRANS   255

STORAGE    (

            INITIAL          64K

            MINEXTENTS       1

            MAXEXTENTS       UNLIMITED

            PCTINCREASE      0

            BUFFER_POOL      DEFAULT

           )

LOGGING

NOCOMPRESS

NOCACHE

NOPARALLEL

MONITORING;

 

以上两张表,TARGET是目标表,我们根据T1表里的SS_ID来更新TARGET表里数据。如果SS_ID存在就做UPDATE,反之做INSERT操作。

 

Merge into target t2

Using t1

On ( t1.ss_id=t2.ss_id)

When matched then

Update

Set t2.memo=t1.memo

When not matched then

Insert

Values(t1.ss_id,t1.ss_nm,t1.memo);

 

如果用INFORMATICA如何来实现呢,INFORMATICA用一套标准的组件来实现这一功能:

上图组件如下:

1 SOURCE的定义 T1

2 SQOUCE QUALIFER

3 EXPERESSION

4 LOOKUP组件查找目标表TARGET

 

6 ROUTER组件

 

 

7UPDATESTRAGE组件

8目标表TARGET

 

 

理一下INFORMATICAETL处理过程:

从最新的维度表里读取数据,用EXPERESSION,SOURCEQUALIDFER来规范下维度表的列名及数据,用LOOKUP组件与数据库中的维度表根据SS_ID做比对,如果找到两个ID表为2,找到一个标为1,用ROUTER函数LOOKUPROW的行数来做把结果分为两部分,UPDATE组和INSERT组,   UPDATESTRAGE来根据对应的组来做UPDATEINSERT,插入目标表TARGET

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22377317/viewspace-681114/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22377317/viewspace-681114/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值