数据仓库的重要特点之一是反映历史变动,所以如何解决维度的变动是维度设计的重要工作之一。迟缓变动维的提出是因为在事实世界中,维度的属性并不是动态的,它会随着工夫的流逝产生迟缓的变动,与数据增长较为疾速的事实表相比,维度变动绝对迟缓。阴齿这个就叫做迟缓变动维。
这里介绍的就是这些维度变动的解决,这边整顿了一下目前支流的迟缓变动维的解决形式。
- 原样保留或者重写,这种形式实践上都是取最新的值作为维度的最终的取值,每个维度保留一条数据。这种解决形式是最简略的,间接将原零碎的维度同步过去应用就能够,不必做过多的解决。
- 插人新的维度行 ,每当维度发生变化的时候,插入新增的一行。采纳此种形式,保留历史数据,
维度值变动前的事实和过来的维度值关联,维度值变动后的事实和以后的维度值关联。也就是一个维度会存在多行的数据,按时工夫范畴将维度与事实表关联。 - 增加维度列,采纳这种形式,次要是为了将变动前后记录的事实归为变动前的维度或者归为变动后的维度。也就是将产生变动的维度,能够在汇总的时候依照对立分组解决。
- 快照存储, 这种形式就是每一个周期定时保留一份数据,与第二点有点想,不过这里会产生很多冗余的数据,当维度里大部分行在周期内,变动频繁的时候,能够采纳。不过依照集体的开发教训,不恨很倡议采纳,具体要依据业务理论状况来抉择。
- 极限存储历史拉链表 ,这种形式是形式 2 的优化版,就是当新的维度行与旧的维度行变动前后一致的时候,会合并一条。还有一点个别拉链表的工夫粒度可能晓得天,然而形式 2,个别到秒,拉链表也是到秒。其余的与形式 2 统一。 历史拉链表既能满足对历史数据的需要,又能很大水平的节俭存储资源 。什么是历史拉链表? 历史拉链表是保护了历史状态,以及最新状态数据的一种表。拉链表存储的数据实际上相当于快照,只不过做了优化,去除了一部分不变的记录而已, 通过拉链表能够很不便的还原出拉链时点的客户记录。 拉链表既能满足反馈数据的历史状态,又能够最大水平的节俭存储,进步查问效率。
- 微型存储维度,微型存储指的就是,将维度中,疾速变动的属性拆分进去,建设新的维度,这个是为了能够解决维度的适度增长导致历史拉链表成果大打折扣的问题,比方维度每几分钟变动一次。属性疾速变动的维度,称为疾速变动魔鬼维度。这个微型维度倡议保留基维度,不便后续数据处理。
当然具体维度须要怎么解决,须要依据业务来,毕竟数据开发是一个很贴近业务的岗位。
须要数据仓库材料能够点击这个支付数据仓库 (13) 大数据数仓经典最值得浏览书籍举荐
参考资料:
- 数据仓库 (01) 什么是数据仓库,数仓有什么特点
- 数据仓库 (02) 数仓、大数据与传统数据库的区别
- 数据仓库 (03) 数仓建模之星型模型与维度建模
- 数据仓库 (04) 基于维度建模的数仓 KimBall 架构
- 数据仓库 (05) 数仓 Kimball 与 Inmon 架构的比照
- 数据仓库 (06) 数仓分层设计
- 数据仓库 (07) 数仓标准设计
- 数据仓库 (08) 数仓事实表和维度表技术
- 数据仓库 (09) 数仓迟缓变动维度数据的解决
- 数据仓库 (10) 数仓拉链表开发实例
- 数据仓库 (11) 什么是大数据治理,数据治理的范畴是哪些
- 数据仓库 (12) 数据治理之数仓数据管理实际心得
- 数据仓库 (13) 大数据数仓经典最值得浏览书籍举荐