前言:

熟悉范式建模、维度建模思想,对比两种方法论的异同
自上而下是指数据的流向,流向为:数据源—>ODS—>数据仓库—>数据应用

正文

范式建模:

  • 由Immon提出的自上而下构建的数据仓库,构建层级为:数据源—>ODS—>GDS—>BDS—>数据应用。
  • 交易系统的数据经过ETL后加载到ODS层;然后通过ODS层,建设原子数据的公共数据存储层GDS,GDS的模型结构主要从主题角度划分,如按照客户、资产、账户、交易、合同等划分为多张模型;GDS的划分方式不方便应用做数据分析,所以在其基础上,从业务角度建立业务数据存储层BDS,BDS的结构主要考虑业务需要,所以单个模型中更可能同时包含客户、资产、账户、交易等多主题信息,而不是更倾向于将这些信息分布多在多个模型中。ODS、GDS和BDS共同构成了数据仓库EDW。
  • 以数据源头为导向,一步步探索获取尽量符合预期的数据,因为数据源往往是异构的,所以会更加强调数据的清洗工作,将数据抽取为实体-关系模型,并不强调事实表和维度表的概念。
  • 优点:能够结合业务系统的数据模型,较方便的实现数据仓库的模型;同一份数据只存放在一个地方,没有数据冗余,保证了数据一致性;根据主题划分,做到数据解耦,方便维护
  • 缺点:数据开发周期较长;表的数量多,查询时关联表较多使得查询性能降低

维度建模

  • 由KimBall提出的自下而上构建的数据仓库,构建层级为:数据源—>ODS—>BDS—>数据应用。
  • 交易系统的数据经过ETL加载到ODS后,从业务角度考虑直接建立业务数据存储层BDS,单个模型可能同时包含客户、资产、账户、交易等多主题信息。模型之间通过一致性维度进行关联,目前广泛以客户号(以客户为中心)为一致性维度,此外也可能以账户号、流水号等为一致性维度。通过一致性维度可以将各集市数据关联在一起,所有业务集市的总和构成了数据仓库EDW。
  • 优点:数据开发周期短,响应快
  • 缺点:作为企业,资源不便于维护,结构复杂,后期维护麻烦,且不容易保持口径的一致性

相关知识点

  • 十大主题:基于十大主题进行归类,可以构建原子粒度的GDS层,也可以用于方便集市内部表单管理。十大主题:
    1 当事人、2协议、3 产品、4 资产、5 事件、6 活动、7 地域、8 内部机构、9 渠道、10 财务
  • 3NF(3范式),三范式不等于范式建模。
    原子性:字段不可再拆分。如现有“中国河南郑州”信息,若要在数据库中记录,不应将其记录在一个字段中,而应分为3个字段,分别是"国家"-中国,“省份”-河南,“城市”-郑州。
    非传递性:字段不可传递推到。A表已记录有“单价”和“数量”字段,则一般不应再记录“总价”字段,因为“总价”可以通过前两个字段得出。
    独立性:一个表应该只描述一件事情。现有A客户表,应仅记录客户信息,如姓名、身高、年龄,房间号等信息。不应记录房间面积,房间价格,房间位置等关于房间的明细信息。因为房间面积等信息属于“房间”表,通过“房间号”关联,可以从B房间表取得。

结语

范式建模方便维护,但是数据构建周期长;

维度建模相对不方便维护,数据冗余大,但是数据构建周期短。