数据仓库诞生背景
数据仓库的诞生主要有两个原因:
- 历史数据的积存需要
- 企业数据分析的需要
历史数据积存
对于企业来说,线上的业务系统,随着业务的进行,会源源不断的产生数据。这些数据都会存储在业务数据库中,如 MySQL、Oracle 当中,支持业务系统的运行。
但当线上的业务系统运行超过一定时间,其积压的历史数据就会越来越多,对业务数据库就会产生一定的负载,导致业务系统运行速度降低。
而这些历史数据中,有相当一部分是冷数据。但业务系统一般对最近产生的数据(当天、一周内、一个月内)调用比较频繁,对较早之前的数据调用频率很低。
所以为了避免随着时间的推移,历史数据积压对业务数据库产生的影响,从而影响业务的正常运行,企业需要定期将积压的历史数据从业务数据库中转移出去,存储到一个专门存放历史数据的仓库中。这就是数据仓库。
业务数据库存储的高频热数据支持线上业务的运行,如果调用到历史数据,再从数据仓库中进行操作。
企业数据分析的需要
企业将历史数据存储到数据仓库中后,这些数据不仅可以改善业务数据库的性能;还可以用来进行数据分析,从而辅助管理层进行决策。以历史数据积存为导向,这种发展是顺其自然的。
但有的企业开始并没有历史数据积存,然而仅仅是对数据分析特别看重。这些企业可能会存在多个部门需要进行数据分析的任务。这些企业建立数据仓库的原由,是以数据分析为导向的。
这些部门会从哪儿获取数据呢?业务数据库。各个部门拥有自己的数据抽取系统,需要分析数据时,直接从业务数据库抽取数据,进行分析运算,绘制报表。
但这种方式存在的问题也是很明显的。
1. 各个部门的分析结果不一致。
为什么?
假设部门 A 早上 9 点从业务数据库抽取数据进行了分析,而部门 B 是下午 2 点进行的数据抽取。这两个部门获取的数据不一致,结果自然也存在差异。
2. 各个部门各自建立数据抽取系统,导致资源浪费。
3. 业务数据库的权限管控也会存在极大的风险。
为了解决这些问题,企业也是统一建立数据仓库,使用专用的数据抽取系统,定期从业务数据库进行数据抽取。这样,数据仓库为各个部门提供了统一的数据视图,解决了分析结果不一致的问题;其次数据仓库直接开放访问接口,各个部门也不需要再建立数据抽取系统;而且数据仓库的权限管控更具有针对性,业务数据库和数据仓库各司其职。
小结
企业无论是以历史数据积存,还是数据分析为导向建立的数据仓库。数据积存、数据分析,这两个都是数据仓库的基本功能与建设目的。