首页 > 编程知识 正文

kimball模型,kimball维度建模实例

时间:2023-05-06 03:55:35 阅读:271172 作者:2540

本文相关基本理论摘录自《数据仓库工具箱–维度建模的完全指南-第二版》和《数据仓库声明周期工具箱》 维度建模介绍 维度建模是一种将数据结构化的逻辑设计方法,将客观世界划分为度量和上下文。机构的每一个业务过程都可以使用维度模型来描述,维度模型由一系列含有数值型度量的事实表组成,而事实表中的数值型度量则被一系列带有文本形式上下文的维度表所环绕。 度量(事实)

由机构的业务过程和支持他们的业务源系统来捕捉的。常以数值形式出现,以此称为“事实

上下文(维)

就是解释度量中数值的具体含义,上下文是围绕这度量存在的,只有当事实被记录时上下文才为真。上下文被直观的分割成多个独立的逻辑块,我们称为“”。维度描述了度量上下文的5W(who,what,when,where,why)信息,以及这些上下文是如何作用的。

维度建模的优点 可理解性,易于使用查询性能高修改的灵活度高 一、事实表 事实表: 存储了从机构业务活动或者事件中提炼出来的性能度量。术语 “事实” 就是指每种性能度量 ,事实表的一行对应一个度量值,所有度量值必须具有相同的粒度。 (1)事实表粒度都归属于三类:

1. 事务粒度事实表 : 粒度是每一行对应一个事务,事务粒度是空间和时间的焦点,一个事务粒度上的度量必须在那个时刻为真。事务事实表在活动发生时才会插入行。
2. 周期快照事实表:能够按照一个定义良好的时间周期间隔来捕捉业务过程的执行情况,并且将这些描述装载到事实表中。
3. 积累快照事实表:用于描述业务过程(有明确的开端和结尾)中某个不确定时间跨度里的活动。

事务和快照是数据仓库的阴阳两面,事务是展现细节行为最为完整的视图,快照使我们迅速而容易的监视总体执行情况

(2)事实表的字段分类

1. 可加性: 例如 条数,金额等
2. 半可加性 : 表示某一时间点的强度度量,例如: 库存量,账户结余
3. 完全不可加性: 例如: 单位价格,温度等

备注:百分比和比率这类数值都是非加性的分子与分母都应该存在事实表中。可以利用数据存取工具计算出事实表中任何数据形式的比率,要记住,求取的是合计值的比率而不是比率的求和

二、维度表 (1) 时间维度

每个事实表都是一个观测值的时间序列,事实表总是有一个或者多个日期维。下图显示了一个以天为粒度的标准日期维度表。

(2)退化维

定义: 像订单号,发票号,机票号等这类编号正是设计父-子关系的事务处理系统时所用到的父标题键,不要忽略这些标题编号,而是应当直接添加到事实表中,标题票号可以作为维度键,但是如果像事务日期和客户维那样将标题记录信息分解成独立的维,那么这个维就没有其他属性了。我们称之为退化维
退化维常常出现在事务事实表的设计过程中,本身就具有一种父-子关系的数据结构

个人理解: 退化维就是没有对应维度表的维度,本质上它是存在于事实表中,并且相应的编码,号码字段没有与之对应的维度表,因为此类维度没有对应的上下文解释。但是,退化维在事实表中普遍存在,并且经常会和其他一些维度组合形成事实表的主键。

例如:在Kimball提出的维度建模中,事实表应该保存最细粒度的数据。所以对于象销售单这样的事实表来说,需要销售单编号和产品来共同作为主键,而不能用销售日期、商场、产品等用来分析的维度共同作为主键。

(3)缓慢变化维 类型一: 覆盖维度属性类型二: 添加一个新的维度行类型三: 添加一个新的维度属性类型四: 微型维,添加一个新维,将经常变化的客户属性分解开放到独立的维度表中。原理就是将变化频率比较大的维度拆分出来单独作为维度表处理。

关于SCD的详细介绍参照博客 缓慢变化维(SCD)的处理方法

(4)雪花型和支架 当冗余属性和译码都被转移到单独的表,并且通过人工键连接到原始表时,维就变成了雪花型了。 支架是一个统计属性集合,存在于每个辖区层次,一个辖区的所有客户都共享一个相同的属性集合。

例如:

(4)维度属性应该具有以下特点 是冗长的是描述性的是完整性的-没有遗漏值是离散取值的质量是有保证的 (5) 事实表和维度表的判断 一个比较好的经验性法则是看看属性是否是离散取值的,以及是否用过过滤和标记。如果满足这些条件就应当放在维度表中。如果属性有许多值可选,并且可以用于计算,则应该将其放入事实表。

供应链管理: 一个产品的流动过程是从获取原材料到加工称为成品,再到最终交付给客户的整个过程,从原始起点到消费终点的整个流程的管理 唱唱是被称作“供应链管理”

(6) 一致性维度 一致性维度是企业数据仓库的“总线”, 一个强大的基于一致性维度的架构将一组业务过程紧密联系到一起就形成了企业数据仓库。

一致性维度对于企业级的数据仓库极为重要,有以下优点:

1 一致性: 每个事实表都使用一致的过滤条件,产生的查询结果集合也被唯一地标识。2 集成: 首先单独查询每个事实表,最后将结果集连接到一个公共的维度属性上3 开发周期短:若一致性维度建立起来,后续的项目开发时间会极大的缩减,不需要重复创建相关的维度表

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。