首页 > MySQL > 数据仓库建设
2016
04-07

数据仓库建设

数据仓库要解决的关键问题是:如何将客观世界的复杂业务逻辑用一张张表组织起来,而这种组织方式能更加高效地应对业务变更以及更加灵活、稳定的支撑业务需求。

关于数据开发

 

数据仓库严格来说是一种体系结构,在工作过程中,有的同学认为数据开发相对系统开发技术含量低,个人认为造成这种想法的主要原因是:只单纯的通过ETL方式解决单个的需求,没有站在一个全局的角度来解决问题,建设数据。
我们在处理需求过程中,要加深业务理解,不能停留在处理单个需求层面上,注重总结积累,进行指标体系建设等。
系统开发和仓库建设的目的都是为了解决问题,本质上是一样的,两者都面临着各种各样难以解决的问题,能建设好数据仓库是相当不容易的,建设数据仓库过程中也是非常需要采用工程方法来提升效率的,所以仓库建设和系统开发并不矛盾,我们应该积极寻找结合点,而不能陷入疲于应付需求的泥潭。

仓库建模

 

较好的组织方式会提升数据质量,让数据仓库发挥更大价值。不好的组织方式可能会导致各种问题,比如数据重复建设,复用率低,一致性差,进而带来口径不一致,理解困难、不易于使用等问题,失去数据仓库建设的价值,造成各种资源浪费。
数据仓库在企业里面发挥着重要的作用,数据平台是为数据仓库服务的,hadoop、hive等作为数据仓库的支撑系统存在,建设好数据仓库需要多个环节合作,是一件非常重要也相当不容易的事情,如何强调其重要性都不为过。

关系模型

 

将客观世界划分成关系与实体,数据仓库由一系列的关系以及实体组成,严格遵守3nf范式,数据一致性比较强,冗余度低。
通过参照完整性来保证一致性,采用关系模型生成的数据仓库往往成蜘蛛网结构,可读性差,不容易入手,对于非仓库建设人员要使用数据仓库中的数据成本是非常高的。

维度建模

 

维度建模方式将客户世界分解成事实和维度,建模过程的一大部分工作体现在抽取维度以及事实,相对来说更加直观,容易理解,在业务变更较为频繁的场景可以更加有效地覆盖业务需求。
数据仓库由一系列的事实表以及维度表组成,事实表与维表之间呈星型连接,事实表之间又通过特定维度联系,形成雪花结构。

3NF范式

 

3nf在第一范式原子性、第二范式不存在部分依赖基础上加入消除传递依赖,其目的是降低数据冗余度,提高数据一致性。关系模型有时候也被称为范式建模,但是这种说法是不太严谨的。因为关系模型好维度建模生成的表都可以符合3nf范式。

模型选择

 

划分世界的方式不一样:一个是实体关系,一个是维度模型,但都可以使用范式。

关系模型

 

优点

  1. 灵活性
  2. 冗余度低
  3. 一致性
  4. 易维护

缺点

  1. 不直观
  2. 获取效率不高

维度模型

优点

  1. 直观性
  2. 易用性
  3. 访问高效

缺点

  1. 容易不一致
  2. 数据冗余
  3. 灵活性差
  4. 适用范围有限

数据仓库建设人员

 

追求数据一致性、灵活性、易维护。

最终用户

 

追求数据访问高效性、直观,易用使用。


留下一个回复

你的email不会被公开。