维度处理-数据仓库-读书笔记(四)
数据仓库中如何使用一致性维度集成
一致性维度
1,当不同的维度表的属性具有相同的列名和领域内容时候,称为维度具有一致性
2,有利于不同事实表的合并到同一报表中去
3,在一致性维度的前提下,可以被所有事实表复用
4,可以保证分析结果的一致性且减少开销
缩减维度
场景一:当构建聚集事实表需要缩减上卷维度
场景二:商业过程自然的获取粒度级别较高的数据
场景三:两个维度具有同样粒度级别的细节数据,但是其中一个仅表示行的部分子集
跨表钻取
1,当两个表包含相同的一致性属性时候,使不同的查询能够针对两个或者更多的事实表进行查询
价值链
1,区分与组织中主要业务过程的自然流程。是对商业活动过程的重新整合和组装。同一组织下的同一个业务过程,对于不同的角色价值链不同,例如:销售商的价值链包括:购买、库存、零售额等;分类账价值链包括:预算编制、承付款项、付款等。
2,尽量为每个过程至少建立一个原子事实表
企业数据仓库总线架构
通过关注业务过程将DW/BI规划过程分解为可管理的模块,通过重用跨不同过程的标准化一致性维度发布实现集成
企业数据仓库总线矩阵
是用于设计并与企业数据仓库总线架构交互的基本工具。矩阵的行代表业务过程,列表示维度,点表示维度与给定的业务过程是否存在关联关系。
总线矩阵实现细节
是一个更加细粒度化的总线矩阵,其中扩展每个业务过程行以展示特定事实。
机会/利益相关方矩阵
用于区分哪些业务过程分组应该与过程中心行相关
数据仓库如何处理缓慢变化维度属性
SCD全称:Slowly Changing Dimension
SCD0:原样保留
维度值属性不会发生变化,事实表以原始值分组。例如:客户的原始的信用卡积分或者持久性标识符 如身份证
SCD1:重写
原来的属性值被新值覆盖。
特点:
1,总是反应最近的状态。此技术破坏了历史情况。
2,易于实现且不需要建立额外的维度行,但是会影响聚集事实或者OLAP多维数据库重新计算
SCD2:增加新行
在维度表中增加新行,新行采用修改的属性址
特点:
1,维度表主键更具有一般性,不能是自然键或者是持久键
2,增加新行时候,分配一个新的主代理键,作为所有事实表的外键,直到产生新的维度键
3,通常我们还会有其余的设计方式去处理SCD2,但是图中的方式是管理、操作最简单的方式
SCD3:增加新属性
在维度上增加新属性以保存原来的值,新属性的变化通过SCD1方式处理
增加新列,此种方式不太常用。
SCD4:增加微型维度
当维度中的一组属性快速变化并划分为微型维度时候使用
微型维度需要自己的唯一主键。其主键从相关的事实表中获取
SCD5:增加微型维度以及类型1支架
对于精确保存历史属性值,按照当前属性值,增加报表的历史事实。
SCD5建立在SCD4基础上,并嵌入SCD1应用基维度中的微型维度
SCD6:增加类型1属性到类型2维度
也保存历史和当前维度属性值。SCD6建立在SCD2的基础上,同时嵌入维度行当前类型1版本。
在此环境中,当属性发生变化时候,SCD1属性由系统自动重写与特定持久键关联的所有行
SCD7:双类型1和类型2维度
支持现在和过去的混合技术。
通过SCD1仅仅展示最新属性值。通过SCD2展示最新历史概要。维度的持久键和代理键需要同时存在事实表上。
数据仓库如何处理维度层次关系
固定深度位置的层次
是多对一关系的一种。最容易理解和查询的层次关系,提供可预测的、快速的查询性能。
需要深度确定,命名稳定
轻微参差不齐
没有固定的层次深度,但层次深度有限。一般尝试确定最大深度,然后基于业务规则放置属性
具有层次桥接表的参差不齐/可变深度层次
深度不确定的层次非常难以建模。可以通过桥接的方式建模参差不齐的层次。桥接表对每个可能的路径保留一行,确保能够遍历所有层次的形式
具有路径字符属性的可变深度层次
通过使用路径字符属性,以避免使用桥接表表示可变深度层次。对维度中的每行的路径字符属性嵌入特定的文本字符,包含从高层次到特定维度行所描述节点的完整路径描述。
缺陷:
1,不能确保其他层次快速替换
2,无法保证共享自身层次
3,当层次发生变化,可能需要重新标记整个层次
历史文章
数据仓库-概述-读书笔记一
数据仓库-DW/BI架构对比-读书笔记二
数据仓库-事实表/维度表技术-读书笔记三
参考资料
数据仓库工具箱