Edit Document
分享 内容 有如下几点:
- 如何理解维度表?
- 维度表有哪些特点?
- 为什么要建立维度表?
- 如何设计维度表?
- 常见的设计规范有哪些?
一、 如何理解维度表?
百度搜索维度表,会有数据仓库,维度表,事实表,星型模型等关键词一并涌出来。其实,在建立数据仓库时,需要建立一种星型模型,主要是由维度表和事实表构成。猜猜下图哪些表是维度表:
二、 维度表有哪些特点?
如上图所示,除了中间的销售订单是事实表之外,周边环绕的都是维度表,这就是星型模型。特点如下:
- 一般是有主键。
- 某类物体的单一属性,如时间属性,地区属性等。
- 数据一般比较少。
- 数据会 有冗余。 而维度表的冗余可以使事实表节省很多空间。
- 数据随着时间增长缓慢。
三、 为什么要建立维度表?
主要是为了各种分析而建立的相对稳定的粒度较细的表。
四、 如何设计维度表?
项目实施时,要分析销售订单,那么包含销售订单号,销售人员,销售商品,销售时间,销售区域等这些信息,实际就是一事实表。而销售人员,销售商品,时间,区域等这些信息相对稳定,粒度单一,就可以创建维度表。而将 维度表和事实表关联起来,就是一个星型模型。
这里是简单设计,没有涉及到复杂情况 。 根据业务不同而有不同。 下面 简单列出了一些需要考虑的复杂情况:
维度表 的模型设计 , 是否要 雪花 模型。
粒度到 多细的 设计。
共用 标准维度 和 业务领域独有维度的设计 。
是否考虑 性能,将 一些 聚集属性作为维度 表 的字段 。
维度表 的冗余 度 设计, 高冗余 ,还是低冗余?
等等。
如能游刃有余 掌握以上情况,那么 你 已经称得上 半个 建模专家了。
五、 常见的设计规范有哪些?
- 维度表的关键字一般使用业务主键定义。
- 一般命名 “_DIM” 作为后缀。
- 主键 ID 的字段命名一般会带上后缀 “_ID” 。
- ID 值一般由数据库序列( SEQUENCE )产生。
- 维度表模型设计一般使用平面表,少量使用雪花型。
六、 待续 内容 : 缓慢维变化。
Attachments:
理解维度表一二三.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)