缓慢变化维(Slowly changing Dimensions)指的是维表中的维度字段值会随着时间或业务调整,而在后续的分析中,历史数据仍然要使用旧的维度值,新的数据会使用当前维度值。在数据仓库建设过程中,ODI提供有专门的SCD 集成模块,更方便的对维表进行更新。

源和目标模型定义

本示例基于src_customer表,下面是目标维表的定义:

在上面的目标维表中,先说明一下相关的字段:

l Key,代理键:在生成的结果维表中唯一标识,一般使用Sequence标识;

l Current_ind,是否有效:当前维表中该记录是否处于有效状态;

l H_BID,自然主键:原有维表中的主键字段;

l C_mstat,维度变更字段:维表中的关键维值,即与其它事实表关联的字段,该值与维度分析有直接关系;

l 其它附属字段(h-addr, h_zip, c_bid, c_tele):其它附属信息,用于说明该记录的其它属性字段;

l C_eff,开始时间:关键维度值有效时间

l C_exp,结束时间:关键维度值失次时间

在每个字段的属性窗口中,可以设置该字段对应的类型:

上图是针对key字段的设置。

维度值状态指示器字段的设置:

针对其它属性字段,选择有源端有更新时就覆盖目标值。

原有主键字段:

维度值起始时间:

维度关键值:

源端维表定义:

该表的字段数比目标表的字段数少。

维表加载更新接口定义

如果字段不能自动匹配,需要手工映射。针对源端没有的字段,需要人工指定相应的值,如下图所示:

在流控制中,需要选择正确的IKM:

测试

原始数据:

第一次执行接口之后目标维表的数据:

在源端把cust_marstat从married改为Single之后,再次执行接口,目标维表的数据如下:

可以看到,状态指示字段已经有变化,起止时间也不同,最后,关键维字段的值已经保留了历史状态。

至此,维表的更新完成。

12c比11g的优点

在12c中,针对SCD的设置做了如下改进:

可直接在目标维表的字段上指定各字段的类型,而不用去每个字段的属性页上单独编辑,提升设置效率,也更直观的对维表进行管理。

ODI 11g & 12c中缓慢变化维(SCD)的处理机制的更多相关文章

  1. 缓慢变化维 (Slowly changing dimension)

          维度建模的数据仓库中,有一个概念叫Slowly Changing Dimensions,中文一般翻译成"缓慢变化维",经常被简写为SCD.缓慢变化维的提出是因为在现实世 ...

  2. 缓慢变化维 (Slowly Changing Dimension) 常见的三种类型及原型设计(转)

    开篇介绍 在从 OLTP 业务数据库向 DW 数据仓库抽取数据的过程中,特别是第一次导入之后的每一次增量抽取往往会遇到这样的问题:业务数据库中的一些数据发生了更改,到底要不要将这些变化也反映到数据仓库 ...

  3. DataStage系列教程 (Slowly Changing Dimension)缓慢变化维

    BI中维表的增量更新一般有2种: Type 1:覆盖更改.记录的列值发生变化,直接update成最新记录. Type 2:历史跟踪更改.记录值发生变化,将该记录置为失效,再insert一条新的记录. ...

  4. 如何用SQL语句处理缓慢变化维(渐变维,拉链表)SCD-2?

    假设有一张居民维表,需要记录居民状态的变更历史,根据Kimball建模理论,设计居民维表如下: 另外在ODS中有居民信息的每日快照表(每天都记录一份居民的全量信息):O_USERINFO 如何将ODS ...

  5. HIVE- SCD缓慢变化

    SCD缓慢变化维,比如一个用户维表,用户属性会变化,但是不会变化很剧烈,可能一年只会变化一两次,也不会所有用户的属性都会有变化,只有少量的数据发生变化,所以叫缓慢变化维.这种问题就是由于维度的变化所造 ...

  6. oracle 12c 中asm元数据是否有所变化

    详见原文博客链接地址: oracle 12c 中asm元数据是否有所变化

  7. 浅析Oracle 12c中Data Guard新特性

    浅析Oracle 12c中Data Guard新特性   写在前面 无论是做Oracle运维的小伙伴还是老伙伴,想必对Oracle数据库的数据级灾备核心技术—Data Guard是再熟悉不过了!这项从 ...

  8. xtts v4for oracle 11g&12c(文档ID 2471245

    xtts v4for oracle 11g&12c(文档ID 2471245.1) 序号 主机 操作项目 操作内容 备注: 阶段一:初始阶段 1.1 源端 环境验证 migrate_check ...

  9. 如何在Oracle 12C中添加多个分区 (Doc ID 1482456.1)

    How to Add Multiple Partitions in Oracle 12C (Doc ID 1482456.1) APPLIES TO: Oracle Database - Enterp ...

随机推荐

  1. js倒计时天时分秒[转]

    <script language="JavaScript"> <!-- // function getQueryString(name) { var reg =n ...

  2. Webdriver - Selenium Grid Configuration

    Grid parameter: role = <hub|node> (default is no grid, just run an RC/webdriver server). When ...

  3. 腾讯云centos 7部署 dotnetcore+Angular2 实践

    版权声明:本文由屈政斌原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/239 来源:腾云阁 https://www.qclo ...

  4. java 多线程1

    进程: 线程: 多线程: 假象:只是CPU在做快速的切换 多线程的好处: 1.解决了一个进程里面可以同时运行多个任务(执行路径) 2.提高资源利用率,而不是效率. 多线程的弊端: 1.降低了一个进程里 ...

  5. Cache模拟器(CacheSim)

     最近写了一个Cache的模拟器,由于平时空余时间比较分散,前前后后用了一周多的时间,基本实现的Cache的模拟功能(通过读取trace文件得到相应的命中率),能够实现直接映射.全相联.组相联三种 ...

  6. Computer assembly and maintenance

    转载请注明出处: 我所遇见的世界会更美好 第一章 计算机的基本构成和组装 1,内存的组成? (1)  RAM(随机存取存储器) (2)  ROM(只读存储器) (3)  Cache(高速缓存) 2,S ...

  7. jquery 常用函数集锦

    html() 方法的功能是设置或获取元素中显示的内容css() 方法的功能是设置或获取元素的某项样式属性 $("#61dh a").css('color','#123456'); ...

  8. IDEA配置maven

    步骤:Setting....或Ctrl+Alt+S

  9. IKAnalyzer进行中文分词和去停用词

    最近学习主题模型pLSA.LDA,就想拿来试试中文.首先就是找文本进行切词.去停用词等预处理,这里我找了开源工具IKAnalyzer2012,下载地址:(:(注意:这里尽量下载最新版本,我这里用的IK ...

  10. 支持新版chrome,用webstorm编译形成css和sourcemap,调试sass和less源文件(转)

    旧版的chrome有个support for sass,但是新版chrome没有这个功能了.看到网上提供的方法比较多,也很乱,旧版新版的都有.而且不能指定自己所需要的路径. 所以就做了下改版. sas ...