知识库 : 维度表基本概念

Edit Document

分享 内容 有如下几点:

  1. 如何理解维度表?
  2. 维度表有哪些特点?
  3. 为什么要建立维度表?
  4. 如何设计维度表?
  5. 常见的设计规范有哪些?

一、     如何理解维度表?

百度搜索维度表,会有数据仓库,维度表,事实表,星型模型等关键词一并涌出来。其实,在建立数据仓库时,需要建立一种星型模型,主要是由维度表和事实表构成。猜猜下图哪些表是维度表:

二、     维度表有哪些特点?

如上图所示,除了中间的销售订单是事实表之外,周边环绕的都是维度表,这就是星型模型。特点如下:

  1. 一般是有主键。
  2. 某类物体的单一属性,如时间属性,地区属性等。
  3. 数据一般比较少。
  4. 数据会 有冗余。 而维度表的冗余可以使事实表节省很多空间。
  5. 数据随着时间增长缓慢。

三、     为什么要建立维度表?

主要是为了各种分析而建立的相对稳定的粒度较细的表。

四、     如何设计维度表?

项目实施时,要分析销售订单,那么包含销售订单号,销售人员,销售商品,销售时间,销售区域等这些信息,实际就是一事实表。而销售人员,销售商品,时间,区域等这些信息相对稳定,粒度单一,就可以创建维度表。而将 维度表和事实表关联起来,就是一个星型模型。

这里是简单设计,没有涉及到复杂情况 根据业务不同而有不同。 下面 简单列出了一些需要考虑的复杂情况:

         维度表 的模型设计 是否要 雪花 模型。

         粒度到 多细的 设计。

         共用 标准维度 业务领域独有维度的设计

         是否考虑 性能,将 一些 聚集属性作为维度 的字段

         维度表 的冗余 设计, 高冗余 ,还是低冗余?

         等等。

如能游刃有余 掌握以上情况,那么 已经称得上 半个 建模专家了。

五、     常见的设计规范有哪些?

  1. 维度表的关键字一般使用业务主键定义。
  2. 一般命名 “_DIM” 作为后缀。
  3. 主键 ID 的字段命名一般会带上后缀 “_ID”
  4. ID 值一般由数据库序列( SEQUENCE )产生。
  5. 维度表模型设计一般使用平面表,少量使用雪花型。

六、     待续 内容 缓慢维变化。

 

Attachments:

理解维度表一二三.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)