对于数据仓库建立多维模型思考

对于数据仓库建立多维模型思考

首先要理解的一个问题就是,什么叫做多维模型?

就是使用一种方法来将现实世界的事物进行抽象,概括的一种方法。
对于多维的理解:像是写记叙文中需要的时间,地点,人物这几个基本要素,有这样的基本要素/限定条件,才能较为精确,完整的描述一件事情。

同样对于一条数据而言,数据本身没有意义,当你从不同维度加以修饰限定,加工出来的数据,对于数据仓库来说有这就是建立多为模型的意义所在

多维模型的类型

多维模型分为两类,星型雪花
给大家画个图吧:

星型模型

星型模型

雪花模型

雪花模型
大概这两种模型就长这样,画的一般,大概知道意思就行~
星型模型一般不用那么多维度表,最后呈现的就是一张巨大的宽表

雪花模型的使用是为了部分公共维度的东西能被复用,就形成一张单独的维度表,如果维度拥有层级就形成了雪花,即子维度,例如机构树,分层,如果机构层级发生变化,其修改的成本将会降低许多。也算是对于星型模型的优化。

根据上图也能看出,多维模型分为两类表,事实表维度表

事实表是啥?维度表又是啥?

事实表我的理解就是,演员列表,放着各种各样的演员,都有自己的编号。
维度表就是剧本,限定一个演员在电影里,在什么时间,什么地点,说什么话,做什么事等等东西。

这只是举个例子,在实际使用中事实表一般存放

  • 事实表主键(数据的粒度提现在这)
  • 公共维度
  • 度量(可以被统计的,计算的数据)
  • 指标(根据需求而定)
  • 隐藏指标(更具数据使用的经验而定)
  • 常用的信息
    维度表一般存放:
  • 类型
  • 日期
  • 标志
  • 限定条件(可以被Where的字段)

根据目前的学习,总结出上述内容,个人理解。嘻嘻嘻