我们都知道,利用多种不同的企业数据库提取数据进行业务决策是一件复杂的工作。而数据仓库的主要优点就是可以将这些不同的数据整合在一个中央存储环境中,并提供给用户必须的OLAP(Online Analytical Processing,联机分析处理)工具来检索与业务有关的数据。
当你听到"数据仓库(data warehousing)"这个词的时候会想到什么呢?也许是一个满是货架的房间,而货架上按一定次序放满了各种信息等待用户提取。
如果你是这么想的,那么恭喜你已经向数据仓库迈进了一步。在传统的仓库中,货物通过一定的规则来摆放,以便于管理者快速检索和确认货品种类,并最终以最快速度提交给提货人员。而数据仓库的模式与之类似。
现在,你也许又会问:"那到底数据仓库和传统仓库相比有什么不同呢?"答案是它们非常类似,但在定义上有所不同。在一个典型的企业中,由于部门的分别,不同的数据总是存储在不同的数据库中。比如市场部、销售部、财务部或者是技术部,每个部门都有自己单独的一套数据库,他们之间在物理上是完全分离的,可是在逻辑上也许有着这样那样的关联。
如果有一个业务问题需要利用其中多个数据库中的数据才能作出结论,那么这个工作就变得很麻烦了。它需要有人熟悉每个部门的数据库结构,并在数据库管理员的协助下进行相关数据的采集和分析。一般来说,公司的普通员工是无法完成这个工作的。
定义
数据仓库可以将上面所提的各种数据整合在一个中央存储库中,为了便于分析,它还会重新整理和排列数据,这意味着新的数据库比传统的分散应用数据库更复杂。一般来说,控制程序会在非忙碌时间将数据批量转换到中央存储库,不过这个工作也可以实时进行。
当数据被导入数据仓库后,借助一些数据库连接和操作工具,比如联机分析处理(OLAP)工具,管理者或者其他用户就可以轻松的操作数据库并得到所需的商务数据。
让我们再想象一下,在传统的仓库中,铲车在货架间穿梭,不断的将一箱箱货物放到相应的货架上。在这个过程中,铲车驾驶员清楚的知道货品该放在什么地方,并且可以选择最快的途径将铲车驶到相应位置。而在数据仓库中,OLAP工具扮演的就是铲车和驾驶员的双重角色,它可以让用户通过简单的操作在数据库中对所需数据进行快速检索。
在OLAP服务器中,数据被重新整理以适应商务报表和分析请求的格式,包括:
异常报告(Exception reporting)
随即分析(Ad-hoc analysis)
资金使用与预算报告(Actual vs. budget reporting)
数据挖掘(Data mining,在数据中寻找趋势或者反常)
为了快速的处理商务查询,有的OLAP服务器会对查询结果进行预处理,而一个异常查询的预处理结果也许比整个数据仓库的体积还要大好几倍。
OLAP 的分类
OLAP主要分为两大类:使用多维数据库的MOLAPS和使用关系数据库的ROLAPS。MOLAP是一种两层的客户服务器架构,OLAP数据库既服务于数据库层,也服务于应用逻辑层。因此应用逻辑和数据库访问都位于同一系统中。
ROLAP通常使用三层架构,其数据库层和应用逻辑层是分离的,并且其数据存储在关系型数据库中,而不像MOLAP那样将数据存储在多维数据库中。
至于何种架构更适合你,则要根据需要而定了。MOLAPS和ROLAPS相比,具有更短的处理时间,更快的响应速度,并且对于用户需求更为灵活。而ROLAPS在处理的数据总量和支持的客户数方面强于MOLAPS。
此外,还有一种OLAP也越来越流行,这就是hybrid online analytical processing (混合联机分析处理,HOLAP)。从字面上我们可以大致看出,HOLAP是上面两种分类的融合,它同时利用了多维数据库和关系数据库。HOLAP的优势在于它可以在性能需求和存储量需求间找到一个平衡点,从而充分利用系统潜能。
数据挖掘
一旦确定了数据仓库,并选择了适当的工具对数据进行检索和操作,我们就可以通过特定的方法对数据进行询问。这个方法就是数据挖掘(data mining)。正如我们在前面提到的,查找数据趋势、模式以及数据间的关系都属于数据挖掘。数据挖掘技术包括:
联合:查找连接事件的模式
分组:查找新的模式
合并:发现和分组以前未出现过的情况
预测:发现数据中的模式并据此预测未来的数据
很明显,和在传统数据库中进行数据查询相比,使用数据挖掘深入分析数据仓库并找出有用信息并不简单。另外,数据挖掘技术还被用于遗传学研究。
另一种对数据进行分析的方法是使用决策支持系统。决策支持系统一般来说是通过专家系统或者人工智能来对数据进行分析,之后将结果汇总成便于用户阅读理解的格式(如线图、报表、表格等形式),以此帮助管理者做出商务决策。
实现
目前有数百家厂商都在销售数据仓库、OLAP、数据挖掘以及决策支持系统软件,其中主要厂商有IBM、Oracle、COGNOS和Microsoft等。另外,互联网上关于数据仓库及其相关工具的介绍也多如牛毛,你可以搜索"OLAP"或"数据仓库"来得到很多有用的知识。
数据仓库是一个复合项目,要想实现它需要专业知识。如果在设计和实施数据仓库项目时没有得到专门的技术支持,就会造成巨大的资源浪费。本文的目的只是为读者扩大知识面,以便读者在今后阅读更专业的数据仓库文章时可以较好的理解其内容。