数据仓库的重要特点之一是反映历史变化,所以如何处理维度的变化是维度设计的重要工作之一。缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的,它会随着时间的流逝发生缓慢的变化,与数据增长较为快速的事实表相比,维度变化相对缓慢。阴齿这个就叫做缓慢变化维。

  这里介绍的就是这些维度变化的处理,这边整理了一下目前主流的缓慢变化维的处理方式。

  • 原样保留或者重写,这种方式理论上都是取最新的值作为维度的最终的取值,每个维度保留一条数据。这种处理方式是最简单的,直接将原系统的维度同步过来使用就可以,不用做过多的处理。

  • 插人新的维度行,每当维度发生变化的时候,插入新增的一行。采用此种方式,保留历史数据,
    维度值变化前的事实和过去的维度值关联,维度值变化后的事实和当前的维度值关联。也就是一个维度会存在多行的数据,按时时间范围将维度与事实表关联。

  • 添加维度列,采用这种方式,主要是为了将变化前后记录的事实归为变化前的维度或者归为变化后的维度。也就是将产生变化的维度,可以在汇总的时候按照统一分组处理。

  • 快照存储,这种方式就是每一个周期定时保存一份数据,与第二点有点想,不过这里会产生很多冗余的数据,当维度里大部分行在周期内,变动频繁的时候,可以采用。不过按照个人的开发经验,不恨很建议采用,具体要根据业务实际情况来选择。

  • 极限存储历史拉链表,这种方式是方式2的优化版,就是当新的维度行与旧的维度行变化前后一致的时候,会合并一条。还有一点一般拉链表的时间粒度可能知道天,但是方式2,一般到秒,拉链表也是到秒。其他的与方式2一致。历史拉链表既能满足对历史数据的需求,又能很大程度的节省存储资源。什么是历史拉链表?历史拉链表是维护了历史状态,以及最新状态数据的一种表。 拉链表存储的数据实际上相当于快照,只不过做了优化,去除了一部分不变的记录而已,通过拉链表可以很方便的还原出拉链时点的客户记录。 拉链表既能满足反应数据的历史状态,又可以最大程度的节省存储,提高查询效率。

  • 微型存储维度,微型存储指的就是,将维度中,快速变化的属性拆分出来,建立新的维度,这个是为了可以解决维度的过度增长导致历史拉链表效果大打折扣的问题,比如维度每几分钟变化一次。属性快速变化的维度,称为快速变化魔鬼维度。这个微型维度建议保留基维度,方便后续数据处理。

  当然具体维度需要怎么处理,需要根据业务来,毕竟数据开发是一个很贴近业务的岗位。

参考文章:数据仓库(9)数仓缓慢变化维度数据的处理

数据仓库(9)数仓缓慢变化维度数据的处理相关推荐

  1. 漫谈数据仓库之SCD(缓慢变化维度)

    0x01 什么是SCD? SCD(Slowly Changing Dimensions),中文一般翻译成"缓慢变化维". 缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的 ...

  2. 数仓缓慢变化维SCD深度讲解

    维度缓慢变化维SCD(Slowly Changing Dimensions)一些维度表的数据不是静态的,而是会随着时间而缓慢地变化(这里的缓慢是相对事实表而言,事实表数据变化的速度比维度表快,如果还不 ...

  3. 数据仓库缓慢变化维度SCD?你想知道的都在这里

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 大数据真好玩 点击右侧关注,大数据真好 ...

  4. 聊聊数据仓库中的缓慢变化维度(SCD)

    虽然我的主业是实时计算和批量计算,并不是数仓,但是在日常工作中绝对少不了与数仓打交道.并且我也算是参与过离线数仓建设的,维度建模的基础还是不能忘.本文就作为一篇抄书笔记吧. SCD简介 顾名思义,缓慢 ...

  5. 数据仓库(3)数仓建模之星型模型与维度建模

      维度建模是一种将数据结构化的逻辑设计方法,也是一种广泛应用的数仓建模方式,它将客观世界划分为度量和上下文.度量是常常是以数值形式出现,事实周围有上下文包围着,这种上下文被直观地分成独立的逻辑块,称 ...

  6. 数据仓库之缓慢变化维度处理

    当维度数据发生变化时,有多种处理方式,一般会用缓慢变化维类型2来处理,也就是当维度属性发生变化时,新生成1行,同时添加 开始日期,结束日期 . 比如: 业务系统中的 用户表: userId mobil ...

  7. 数仓建模(维度建模)

    目录 一.什么是建模?(为什么建模) 二.模型的好处 三.建模的方法 四.维度建模 4.1 基本概念 4.2 为啥选择维度建模(优缺点) 4.2.1 优点 4.2.2 缺点 4.3 维度建模-星型模型 ...

  8. 数仓中关于“维度” “粒度”的详细理解(转)

    一.维度是什么 不懂就问,维度是什么?我们学习的自然反应,自然是去查阅专业资料. 1)阿里dataphin产品简介--基本概念是这样介绍维度:人们观察事物的角度,是指一种视角,是确定事物的多方位.多角 ...

  9. 缓慢变化维度(SCD)

    SCD简介 SCD Type 0: Retain Original(维持原状) SCD Type 1: Overwrite(覆盖) SCD Type 2: Add New Row(添加新行) SCD ...

最新文章

  1. 带有中文的字符串各个字符的获取c++程序
  2. centos7安装mysql 依赖检测失败:_gcc-centos7安装mysqlworkbench依赖检测失败
  3. 【如何管理开机自启动程序】
  4. matlab八节点六面体程序,平面8节点等参元完整程序
  5. idea 线程内存_Java线程池系列之-Java线程池底层源码分析系列(二)
  6. 【1】生产者-消费者模型的三种实现方式
  7. HistCite 的使用方法
  8. 什么是5G,我们能从中得到什么?
  9. 【kafka】浅谈Kafka的多线程消费的设计
  10. 使用HBuilder将web项目打包成app
  11. OSPF Vlink peer的配置
  12. Unity3D游戏开发之自由视角状态下的角色控制
  13. PHP 零基础入门笔记(1):PHP 基础
  14. jmeter 运行接口报javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection的解决方法
  15. python 类 实例_Python类的实例详解
  16. Python一行代码实现正三角形
  17. 计算机常用程序在DOS中的英文名
  18. python自动化之excel文件操作
  19. java 将fileoutputstream 文件流保存为文件_Java输出流FileOutputStream使用详解
  20. 距离北京奥运还有359天,发布WPF版本的北京2008标志(上)

热门文章

  1. 电商运营到底做什么?说出来你也不信。
  2. 创建mysql数据库快照_sql语句大全之创建数据库快照
  3. 转正答辩未通过是否可以辞退试用期员工
  4. 54个站在人类智商巅峰的男人!告诉你2400年的物理学史里都有什么……
  5. android studio最新教程pdf下载,android studio教程pdf下
  6. Spring-Cloud-Gateway之代码注入漏洞及解决
  7. 历史笔记记录之 MySQL DBA 面试题目 答疑记
  8. mysql spj_MySQL查询优化器--非SPJ优化--LIMIT优化
  9. android百度地图定位跳转中心点,百度地图,拖动地图,定位marker固定在屏幕中心位置...
  10. 【无人机】基于Matlab实现无人机轨迹规划目标跟踪附论文报告和代码