数据仓库要解决的关键问题是:如何将客观世界的复杂业务逻辑用一张张表组织起来,而这种组织方式能更加高效地应对业务变更以及更加灵活、稳定的支撑业务需求。
关于数据开发
?
数据仓库严格来说是一种体系结构,在工作过程中,有的同学认为数据开发相对系统开发技术含量低,个人认为造成这种想法的主要原因是:只单纯的通过ETL方式解决单个的需求,没有站在一个全局的角度来解决问题,建设数据。
?
我们在处理需求过程中,要加深业务理解,不能停留在处理单个需求层面上,注重总结积累,进行指标体系建设等。
?
系统开发和仓库建设的目的都是为了解决问题,本质上是一样的,两者都面临着各种各样难以解决的问题,能建设好数据仓库是相当不容易的,建设数据仓库过程中也是非常需要采用工程方法来提升效率的,所以仓库建设和系统开发并不矛盾,我们应该积极寻找结合点,而不能陷入疲于应付需求的泥潭。
?
仓库建模
?
较好的组织方式会提升数据质量,让数据仓库发挥更大价值。不好的组织方式可能会导致各种问题,比如数据重复建设,复用率低,一致性差,进而带来口径不一致,理解困难、不易于使用等问题,失去数据仓库建设的价值,造成各种资源浪费。
?
数据仓库在企业里面发挥着重要的作用,数据平台是为数据仓库服务的,hadoop、hive等作为数据仓库的支撑系统存在,建设好数据仓库需要多个环节合作,是一件非常重要也相当不容易的事情,如何强调其重要性都不为过。
关系模型
?
将客观世界划分成关系与实体,数据仓库由一系列的关系以及实体组成,严格遵守3nf范式,数据一致性比较强,冗余度低。
?
通过参照完整性来保证一致性,采用关系模型生成的数据仓库往往成蜘蛛网结构,可读性差,不容易入手,对于非仓库建设人员要使用数据仓库中的数据成本是非常高的。
?
维度建模
?
维度建模方式将客户世界分解成事实和维度,建模过程的一大部分工作体现在抽取维度以及事实,相对来说更加直观,容易理解,在业务变更较为频繁的场景可以更加有效地覆盖业务需求。
?
数据仓库由一系列的事实表以及维度表组成,事实表与维表之间呈星型连接,事实表之间又通过特定维度联系,形成雪花结构。
3NF范式
?
3nf在第一范式原子性、第二范式不存在部分依赖基础上加入消除传递依赖,其目的是降低数据冗余度,提高数据一致性。关系模型有时候也被称为范式建模,但是这种说法是不太严谨的。因为关系模型好维度建模生成的表都可以符合3nf范式。
?
模型选择
?
划分世界的方式不一样:一个是实体关系,一个是维度模型,但都可以使用范式。
关系模型
?
优点
- 灵活性
- 冗余度低
- 一致性
- 易维护
缺点
- 不直观
- 获取效率不高
维度模型
优点
- 直观性
- 易用性
- 访问高效
缺点
- 容易不一致
- 数据冗余
- 灵活性差
- 适用范围有限
?
数据仓库建设人员
?
追求数据一致性、灵活性、易维护。
最终用户
?
追求数据访问高效性、直观,易用使用。?
?
?
原创文章,转载请注明出处