缓慢变化维 Slowly Changing Dimensions( A typical slowly changing dimension is a product dimension in which the detailed description of a given product is casionally adjusted. ): 数据仓库数据加载规则,数据仓库中用于实现历史数据与当前数据的同时记录。
3.1 概述
缓慢变化维Slowly Changing Dimensions(A typical slowly changing dimension is a product dimension in which the detailed description of a given product is casionally adjusted.):数据仓库数据加载规则,数据仓库中用于实现历史数据与当前数据的同时记录。与OLTP系统不同的是,数据仓库中可以保留下数据的变化信息,及历史数据的记录。
由于系统的设计不同, OLTP系统可以方便的得到实时的报表,却难于得到混合的、复杂的、包含历史的统计信息。数据仓库系统却由于有其专有的建模方式,可以方便的做到这些。在数据仓库中,一个典型的事实表设计,其包含多个代理主键,周围由多个星形围绕着它的维表构成,这些维表则是一些具有简单主键的表。对于维表数据的历史存储的需要,一种典型的数据加载规则即是 Slowly Changing Dimensions方式。即当维表数据发生改变,数据仓库需要感知,并真实的记录下数据的每一步细微变化。
但是通过代理键的方式进行维度的加载,一方面导致维度表设计过于复杂,另一方面事实表数据中的相应的键值也需要进行相应的代理键替换,从而导致了设计的复杂性、数据库性能的下降和维护的成本的提高,因此这些维度通常是根据用户需求和业务敏感度极高的基础表信息,例如某些企业内的工号,因为工号分配的限制,员工流失后,新进入的员工仍使用原来的员工号,对于 OLTP系统只需要一个简单的 UPDATE即可;而对于数据仓库系统则要区分同一个工号前后不同的人员信息,以避免查询时对同一个工号发生的歧义。
对于一般性的维度,仍建议使用最简单的方式进行维度处理,即覆盖法,对于维度只做更新和插入处理,不做删除,即只保留最后一次更新的状态,不保留历史状态,对于大多数维度信息已经足够。
3.2 原理
缓慢变化维的实现原理,采用的是数据仓库的 3种常用数据加载规则中的全表比对方式。在 ETL过程中,抽取所有源数据,并进行相应规则转换,完成后先不插入目标,而对每条数据进行目标表比对。根据主键值进行插入与更新的判定,目标表已存在该主键值的,表示该记录已有,并进行其余字段比对,如有不同,则进行 Update操作,如目标表没有存在该主键值,表示该记录还没有,即进行 Insert操作。通过全表比对,感知数据的变化,并进行相应的处理。
数据仓库的数据加载规则可以有多种方式实现,缓慢变化维是其中一种非常强大的方式。而根据它的具体设计不同又可分为 3种:覆盖、全历史记录、记录最新纪录及上一次历史。在以下的介绍中将把数据仓库的数据加载规则融入进去,并结合 SQLServer脚本的缓慢变化维的实现详细说明。

 
 

转载于:https://blog.51cto.com/baoqiangwang/310380

3 关于数据仓库维度数据处理的方法探究系列——缓慢变化维概述和原理相关推荐

  1. 5 关于数据仓库维度数据处理的方法探究系列——缓慢变化维处理——全历史记录...

    全历史记录是缓慢变化维中最为强大的一种加载方式.它将可以完全实现覆盖方式能实现的加载方式,且可以实现对数据的历史记录,可以记录下每一个数据的细微变化. 3.3.2 全历史记录( Type 2 Dime ...

  2. 6 关于数据仓库维度数据处理的方法探究系列——缓慢变化维处理——记录最新记录及上一次历史...

    此种方式是缓慢变化维中较为折中的做法,但需要表结构随之适应.它的原理是把目标表字段扩充一倍,其中一组用来记录最新的记录信息,另一组用来记录上一次的历史记录.新记录插入时,将其插入到最新记录的位置,一旦 ...

  3. 2 关于数据仓库维度数据处理的方法探究系列——无变化维度处理

    无变化维度一般都是比较简单的维度,都是经过一次性处理后就不再变化的数据:通常这些维度都是一些常识数据 (如性别,重要程度 )和分段数据 (为了减少单层维度的数量,按照一定业务标准进行的人为分组 ). ...

  4. 1 关于数据仓库维度数据处理的方法探究系列——维的概述

    在数据仓库中,维度是数据仓库概念的一个重要基础,因此维度的抽取和处理是一个重要的环节,对于不同的维度根据业务需求以及客观原因有许多不同的处理方式,以下将以SQLServer2000语法为例展开. 1 ...

  5. 8 关于数据仓库维度数据处理的方法探究系列——父子维

    父子维度通俗的话来讲,这个表是自反的,即外键本身就是引用的主键:类似这样的关系,如公司组织结构,分公司是总公司的一部分,部门是分公司的一部分,当然如果定义得好的话员工是部门的一部分:通常公司的组织架构 ...

  6. blog-数据仓库维度建模系列--缓慢变化维(SCD)的思考(一)

    缓慢变化维(Slowly Changing Dimensions) 缓慢变化维是维度技术中用于描述维度变化情况的一种分类. 什么是SDC? 在现实的实施中 先说一下缓慢变化维的概念.缓慢变化维(Slo ...

  7. 吴乙己的数仓指南_5.1维度建模技巧之SCD2类型缓慢变化维搭建

    目录 0.引言 1.SCD类型 2.举个栗子 3.SCD2 3.1 什么是SCD2 3.2 如何使用SCD2 3.3 如何实现SCD2 3.3.1 获取维度基准 3.3.2 按情况分治打标 3.3.3 ...

  8. Kettle使用_22 维度更新 缓慢变化维 拉链表

    Kettle使用_22 维度更新 Type2 拉链表 需求:通过Kettle实现对员工维度数据的更新和插入. 解决方法:通过维度查询更新组件实现. 注:补充部分有SQL版Type2实现代码. Prev ...

  9. 大数据学习(三十一)数据仓库如何处理缓慢变化维

    以下内容结合了<大数据之路-阿里巴巴大数据实践>书中的内容,就如何处理缓慢变化维话题进行展开. 前言:维度的属性也是会发生变化的,只不过相较于事实表而言,变化的速度是极其缓慢的,那我们是否 ...

最新文章

  1. Bzoj2555 SubString
  2. 特征点检测学习_2(surf算法)
  3. android的消息处理机制(图+源码分析)——Looper,Handler,Message
  4. SoapUI启动报错:The JVM could not be started. The maximum heap size (-Xmx) might be too large
  5. 企业微信万亿级日志检索系统
  6. composer(作曲家)安装php-ml
  7. 今天,滴滴被爆亏损109亿,需裁员2000多人,哪些员工会被裁掉?
  8. 用Java简便地去重+排序(洛谷P1059题题解,Java语言描述)
  9. java魔剑天使,血色天使魔剑官方版
  10. 51单片机自学好找工作吗,怎样学才能找到适合的工作
  11. 介绍make menuconfig中的每个选项含义
  12. 推荐oracle exadata,Exadata的一些常见误区
  13. 车型代号对照表_上海大众车型与VIN代号对照表
  14. ApacheCN 活动汇总 2019.8.30
  15. Hosts文件拒绝访问
  16. 10. ESP8266通过OTA更新固件的实践
  17. android 简单拍照,android实现简单拍照功能
  18. 分子动力学模拟之SETTLE约束算法
  19. Java多线程案例之线程池
  20. linux安装java视频_linux安装java(zz)

热门文章

  1. LeetCode-1.Two Sum
  2. (笔记) (ARM) QQ2440 开发板改为 GT2440 (Linux) (开发板)
  3. 被解放的姜戈03 所谓伊人
  4. 解释:什么是云计算?
  5. 如何“正确”为SharePoint字段命名
  6. 让bat异常之后不直接关闭窗口的办法.
  7. php json_decode 后,数字对象转换成了 科学计数法 的解决方案
  8. iOS11隐藏导航条后顶部有20单位的空白或者pop页面时明显感觉前一个页面有上移的异常动画的解决办法。
  9. too many open files(打开的文件过多)解决方法
  10. Linux忘记密码常用的几种解决方法