我们经常提出并对之误解的一个问题是,就是建造数据仓库的需求来自哪里?作为企业信息工厂(CIF)和商务智能的核心,数据仓库是一个有着多方面的复杂主题。本文对其他地方没有涉及的话题展开讨论。
数据仓库怎么建立需求?实际上,数据仓库建立的需求来源于一个数据模型。尽管最终用户也会间接地使用数据仓库,但是他们的需求只是其中的一部分。为了解最终用户如何使用数据仓库中的数据,我们来看设计数据仓库时的如下考虑。
数据仓库是由数据模型定型的。数据模型分为不同的层,典型地分为高层数据模型,中层数据模型和底层数据模型。
图 显示数据模型中不同的关系以及数据模型如何与数据仓库相关。
现在考虑数据仓库怎么建立和使用。数据仓库的关系控件用来支持对数据的其他视图。如图2,数据仓库的关系基础用来创建数据的其他视图与组合。
关系型数据库被创建后(即形成了数据仓库的核心),最终用户的需要就用来指示数据应该如何重组。因此,最终用户的需要确实塑造了数据仓库,至少通过间接的方式如此。颗粒,即用来支持最终用户需要的基本数据必须存在于数据仓库之中,以满足用户需求。
图2 在数据仓库中,最终用户的需求并不是直接被满足
考虑一下,当机器处理大量的统计分析时将会发生什么(例如浏览器做出一个请求)?假如有一个机器用来满足正常的数据仓库工作要求,人们(农场主)周期性地拖出少量的数据。有一天,机器接到有关访问1亿行数据的请求,还要做繁重的统计分析。这个请求要求对数据排序,访问每行,创建计算,接着再对基础数据进行计算。当此请求完成后,输入另一组参数,接着重复这个过程。
接到一个这样的请求,普通的数据仓库将会怎样处理?通常情况下,普通的处理过程进入死机。处理过程进入死机后会发生什么?最终用户很快就会不满。
事实上,普通数据访问和繁重的统计处理不能非常好地融合。当对机器资源的竞争非常强烈时,有的人可能要受罪了。
无论有没有人会受罪,有一件事情是毋庸置疑的,那就是对数据仓库中的数据进行常规分析处理和统计分析的请求是有效的。问题是,用常规的方法对这两种处理进行融合会对机器资源造成竞争。