当前位置: 代码迷 >> 数据仓库 >> 数据仓库建设碎想
  详细解决方案

数据仓库建设碎想

热度:102   发布时间:2016-05-05 15:35:48.0
数据仓库建设碎念
数据仓库要解决的关键问题是:如何将客观世界的复杂业务逻辑用一张张表组织起来,而这种组织方式能更加高效地应对业务变更以及更加灵活、稳定的支撑业务需求。

关于数据开发

?

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

仓库建模

?

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

关系模型

?

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

维度建模

?

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

3NF范式

?

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

模型选择

?

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

关系模型

?

优点

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

缺点

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

维度模型

优点

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

缺点

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

数据仓库建设人员

?

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

最终用户

?

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

?

?

原创文章,转载请注明出处