剑指大数据:企业级数据仓库项目实战(在线教育版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 数据仓库的演进历史

在了解了数据仓库的概念之后,我们还应该思考,数据仓库的数据从哪里来?数据仓库的数据通常来自各个业务数据存储系统,也就是各行业在处理事务过程中产生的数据,比如用户在网站中登录、支付等过程中产生的数据,一般存储在MySQL、Oracle等数据库中,也有可能来自用户在使用产品过程中与客户端交互过程产生的用户行为数据,如页面的浏览、点击、停留等数据,用户行为数据通常存储在日志文件中。这些数据经过一系列的抽取、转换、清洗,最终以一种统一的格式装载进数据仓库。数据仓库的数据则作为分析用的数据源,提供给后面的即席查询、报表系统、数据挖掘等系统。

数据仓库的演进历史就是存储设备的演进历史,也是体系结构的演进历史。事实上,数据仓库和决策支持系统(Decision Support System,DSS)处理的起源可以追溯到计算机和信息系统发展的初期,二者是信息技术长期复杂演化的产物,并且今天这种演化仍然在继续。最初的数据存储介质是穿孔卡和纸带,毫无疑问,这种存储方式的局限性是非常大的。后期随着直接存储设备的出现和个人计算机(PC)以及第四代编程语言的涌现,用户得以直接控制数据和系统。此时,诞生了被称为MIS的管理信息系统(Management Information System),除利用数据进行高性能在线事务处理之外,还能进行管理决策的处理过程。这种理念的提出是很有前瞻性的。

20世纪80年代,出现了数据抽取程序,这种程序能不损害已有系统,使用某些标准选择合乎要求的数据传送到其他文件系统或数据库中。起初只是抽取,随后是抽取之上的抽取,接着是在此基础之上的抽取。在那时,此种失控的抽取处理模式被称为自然演化式体系结构。自然演化式体系结构,在解决了数据使用时产生的性能冲突之余,也带来了很多挑战,比如数据可信性问题、生产率问题等。

自然演化式体系结构确实不足以满足将来的需要,数据仓库需要从体系结构上寻求转变,于是我们迎来了体系结构化的数据仓库环境。体系化的数据仓库环境主要将数据分为原始数据和导出数据。原始数据是维持企业日常运行所需的细节性数据,导出数据是要经过汇总或计算来满足公司管理者决策制定过程所需的数据。最初,信息处理界竟然认为将原始数据和导出数据可以配合在一起,并且能很好地共存于同一个数据库中。事实上,原始数据和导出数据差异很大,根本不能共存于同一个数据库中,甚至不能共存于同一种环境中。例如,某些原始数据由于安全或其他因素不能被直接访问、很难建立和维护那些数据源于多个业务系统版本的报表、业务系统的表结构为事务处理性能而优化,有时并不适合查询与分析、没有适当的方式将有价值的数据合并进特定应用的数据库、有误用原始数据的风险,且极有可能影响业务系统的性能。

在体系结构化环境中有4个层次的数据——操作层、原子/数据仓库层、部门层或数据集市层、个体层。操作层数据只包含面向应用的原始数据,并且主要服务于高性能事务处理领域。数据仓库层存储不可更新的、集成的、原始的历史数据。数据集市层则根据用户的最终需求为满足部分的特殊需求而创建。在数据个体层中则完成大多数的启发式分析。

这样的体系结构在当时看来产生了大量的冗余数据,事实上,相较于自然演化体系结构的层层抽取,这种结构的数据冗余程度反倒没有那么高。

体系结构化环境的一个重要方面就是数据的集成。当把数据从操作型环境载入数据仓库环境时,如果不进行集成就没有意义。如图1-1所示,即为一个数据集成的例子。一个用户在操作层产生了4条数据,分别存储在了用户信息表、订单表、优惠券表、收藏表中,显示了用户的不同操作。4条不同的数据在被抽取到数据仓库层时会进行聚合,得到右侧的原子数据,显示了同一个用户的所有行为,我们就可以根据用户的这条集成数据得到此用户是一个游戏爱好者,给他推送游戏相关产品则有更大可能增加销量。

img

图1-1 一个数据集成的例子

数据仓库的演进和发展在架构层面大致经历了3个过程,如下所示。

1.简单报表阶段

简单报表阶段的主要目标是为业务人员分析提供日常工作中用到的简单报表,以及为领导提供决策所需的汇总数据。这个阶段的主要表现形式为传统数据库和前端报表工具。

2.数据集市阶段

数据集市阶段的主要目标是根据某个业务部门(如财务部门、市场部门等)的需要,对数据进行采集和整理,并按照该部门的需要,进行适当的多维报表展现,提供对该业务部门有所指导的报表数据和对特定领导决策进行支撑的汇总数据等。

3.数据仓库阶段

发展到数据仓库阶段,主要是按照一定的数据模型(如关系模型、维度模型)对整个企业的数据进行采集和整理,并且能够按照各个部门的需要,提供跨部门的、具有一致性的业务报表数据,生成对企业总体业务具有指导性的数据,同时为领导决策提供全方位的数据支持。

通过研究数据仓库的演进历史,我们可以发现从数据集市阶段到数据仓库阶段,其中一个重要的变化在于对数据模型的支持。数据模型概念的完善和构建,使得数据仓库发挥出了更大的作用。因此,数据模型的建设对数据仓库而言有着重大意义,在本书数据仓库项目的搭建过程中,我们也将对数据模型展开详细探讨。