数据仓库概述

373 阅读3分钟

什么是数据仓库?

数据仓库是由数据仓库之父比尔·恩门(Bill Inmon)提出,数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合。

主要用于组织积累的历史数据,并使用分析方法(OLAP、数据分析)进行分析整理,进而辅助决策,为管理者、企业系统提供数据支持,构建商业智能。

数据仓库的特点

面向主题

数据仓库是为数据分析服务的,而数据分析任务是有明确的主题任务的。比如,要分析用户行为特征,那就需要将业务数据库抽取过来的原始数据表进行聚合,然后集合成一张用户行为表;要分析用户的购买习惯,就需要将原始数据聚合成一张用户购买商品明细表。聚合后的表,便于之后相关主题的分析任务进行运算。

所以说,数据仓库是面向主题的,是指为主题明确的数据分析提供的数据聚合服务。

集成

数据仓库中的数据是来源于不同数据源的,因为企业的业务根据规模的不同,可能存在一个或多个业务系统。不同的数据源,对数据采用的规范可能各不相同。

如图所示,对性别的编码上,四个系统可能会采用不同的方式来表示男、女;在属性上,也可能有不同的差异,如使用不同的计量单位;甚至因为各个系统的分工不同,导致对同一张表的字段描述也存在差异。

所以需要将不同数据源的数据,进行标准化,整合成统一的数据规范,便于之后进行分析运算。这就是数据仓库集成的特点。

非易失

数据仓库存储的数据是一系列历史快照,为了保证数据的一致性,所以不允许被修改。只能通过工具对数据进行查询、分析。所以既然不允许数据修改,所以它的数据保存是非易失的。

时变性

数据仓库因为会定期去接受、集成新的数据进来,保证与业务数据库数据一致,从而反映出数据的最新变化。

但前面提到的非易失表示,数据仓库的历史数据不允许修改,那怎么发生变化呢?

不允许修改,但可以将最新的数据追加到系统中,以时间戳标记版本,老旧的数据可以选择定期删除或保留。从而为数据分析提供最新的数据。

数据仓库 VS 数据库

数据仓库与数据库有哪些不同呢?从之前的介绍中也能体现出来,数据库是面向事务设计的,它属于 OLTP(在线事务处理)系统,为业务提供数据存储服务,主要操作是随机读写;在设计时尽量避免冗余,常采用符合规范来设计。

数据仓库是面向主题设计的,属于 OLAP(在线分析处理)系统,主要操作是批量读写;关注数据整合,以及分析、处理性能;会有意引入冗余,采用反范式方式设计。