生活就好像一盒巧克力

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

第四章  

最近几年,OLAP和数据仓库技术迅速普及和实用化。OLAP已经存在很长时间了,但直到最近它才被大规模应用于商业领域中。今天,您几乎找不到一种不提及OLAP或数据仓库技术的计算机或信息系统的行业杂志。(如果您不了解OLAP,请参考“OLAP简要概述”一节)

从许多方面来说,OLAP的普及都不奇怪。在最近40年中,各公司已经变得相当善于获取大量的交易信息,和研究其中的数据,以便能够使他们的核心商业系统正常运行,并开发出新产品。一旦获取了这些信息,它就成为了一个可以立刻被使用的有价值资源――许多商业人员都需要浏览各种报告,以帮助他们对市场活动,销售业绩,以及生产过程等进行决策。但是对于这些公司中的商业决策者来说,不幸的是,这些资源总是被严密的锁在名为中央IT部门的封闭仓库中。公司中的IT雇员们整天忙碌于保证公司核心商业系统的正常运行,,通常都没有时间来生成那些无数人渴望看到的报告,而且对于这些报告的需求也常常是模糊和不能明确定义的。即使IT部门提供了这些报告,它们也常常是很不灵活的。实际上,即使是作一个很简单的改动的要求,例如,只是需要根据另一个字段来进行分组,从而可能需要IT部门生成一个新的报表――很不幸,也会是一个痛苦而漫长的过程。

OLAP和数据仓库技术承诺能在一定程度上解决这些问题,这些技术让IT组织关注那些他们最擅长的事情,而为那些需要查询数据的人提供易用而强大的工具,使他们能够自己生成任何一段所需要的数据。IT组织将致力于提取,合并,以及清理数据;设计一个符合商业思维模式的cube结构;并开发将每日交易数据装载到OLAP服务器中的批处理程序。而用户可以使用“交叉分析”功能来查找他们特定问题的答案――例如,“在我的地区里的每个州中,平均每人的销售额是多少?”或者,“与去年同期相比,我的产品的销售额增长或减少了多少?”

透视表组件就是这样一种常被归类为“商业智能”工具中的一个客户端工具,这些客户端工具都具有易用和功能强大的特性。那些读过漫画《呆伯特法则》的人可能会认为“商业智能”的提法是自相矛盾的(译者注:作者的意思是说,商业是不可能智能的),但是这个词确实能恰当的描述这些工具所希望提供的功能。存储在OLAP系统中的大量数据在被转换成发布在报表中的信息之前,都是没有用处的,这些报表极可能成为某个制定商业决策的人员的有用信息。您可以使用透视表组件来创建基于web的强大数据分析系统,允许您的用户在web浏览器中排序,过滤并重新对数据进行分组。许多公司都在研究使用web浏览器和企业内部网站点来将信息传递给雇员的简便方法。但是,静态形式的数据,和那些陈旧的打印报表一样表现能力有限。透视表控件不仅提供交互式的数据分析功能,还提供简便的安装和升级功能。易于分布的特性主要归功于微软IE的自动代码下载机制,它能够被用于一个web页面上的所有COM组件。(在第12章中我们将详细讨论如何分布。)

       注释

虽然我们一直都在讨论HTMLweb页面,但您应该知道,透视表控件不仅能运行在web页面中,也能运行在微软的vb页面,以及第一章中列出的其它控件容器中。不过,本章的大部分内容都只会着眼于如何在web页面上使用透视表控件,因为许多开发者发现用户对此有极大的需求。

 

本章主要讲述透视表组件概念性的内容,最开始将解释“为什么透视表报表会十分有用”。接下来,您会看到透视表控件能够接纳的各种类型的数据。此外,您也能读到关于透视表组件的关键数据源之一--OLAP的技术的简要概述。之后,您会学习透视表控件中各元素的术语,并了解它们是如何映射到每种类型数据源的底层元素的。最后,您会学些如何使用透视表控件来为您的解决方案添加分析功能。

本章不会完整的讲述如何在设计环境中交互的创建一个透视表。透视表控件的帮助文件对这个问题有非常全面的介绍;您可以通过点击控件工具箱上的帮助按钮来查看它。而对于将微软Excel2000中的透视表报表发布到透视表控件中的相关信息,可以查看Excel的帮助主题,该主题标题为:“关于在web上显示微软Excel的透视表报表。”

 

 

第一章                 

透视表组件通过组合Excel中的透视表动态报表功能和外部数据序列(也叫做查询表)功能,从而能够为表格数据源和OLAP数据源提供交互数据分析功能。透视表组件的输出通常被称为“交叉表”,因为它显示了各类别交叉点的总和(合计)。例如,您可以采用在行上显示各年,在列上显示客户性别,这样相交叉的方式来显示按产品系列分组的销售信息。在使用一个表格数据源时,透视表控件除了可以显示合计之外,也可以显示任何合计值的详细组成数据行,还可以使用普通列表来显示整个表格数据。

在我谈论透视表控件时,我通常总是立刻进行演示。因为企图描述它到底是什么样子,总是比简单显示它的运行状态要困难的多。这个控件内部的技术细节非常深奥,但是它的使用方法却十分自然和直观。许多商业分析者可以非常高效的使用这个控件,但是对于它是如何工作的却一点儿都不知道。他们只知道它能帮助他们找到问题的答案。因此,我建议您打开随书光盘上Chap04文件夹下的PivotTableIntro.htm文件,在我描述这个控件的功能的同时使用这个例子。当您打开这个文件后,例子页面会如图41所示。

 

 

41。一个透视表报表的例子。

这个报表的数据源来自微软SQL ServerOLAP服务的一个例子cube。其中包含了一个虚构的名为Foodmart的杂货连锁店的销售信息。我已经将这个cube导出到随书光盘上的Data\Sales.cub文件中,这样即使您的机器上没有OLAP服务器,您也可以使用它了;不过,这个cube文件当然比基于服务的cube要慢一些。

例子页面在初始化时将透视表控件配置为显示19971998年所进行的各种促销活动带来的销售总额的报表。使用这个报表,您可以回答类似这样的问题:“1997年最成功的促销活动是哪次?”或者“哪次促销活动中销售了最多数量的饮料产品”对于第一个问题,右键点击1997年那一列中的任何数字,然后选择“降序排列”命令,或者选择1997年那一列中任何数字,然后点击工具条上的降序按钮排列即可。报表会立刻重新排序,并在第一行显示出最高销售量的促销活动,如图42所示。

 

42。一个经过排序的透视表报表。

位于列表的首位是非促销活动的销量,说明非促销活动比任何一次促销活动都卖出了多的多的产品。“现金换取彩票”的促销活动位于第二位,但是请注意在1998年并没有进行这种促销活动。这个发现可能会使市场主管调查为什么没有在1998年进行这种促销活动的,毕竟,它可是1997年最成功的促销活动。

最常见的分析技巧之一就是查找一段感兴趣的数据的更多细节。在OLAP的术语中,这常被称为“钻取”。实际上,透视表控件使您能够轻松的使用这个技巧。例如,假设一个报表显示了1997年“现金换彩票”促销活动带来的销售额,而您需要了解是否这种促销活动在某个特定的季节特别有效。换句话说,您需要了解在1997年的4个季度中这种促销活动分别带来的销售额。为了显示这个详细情况,可以双击1997年列的列表前,或者点击标签左边的加号。报表会展开,以显示1997年的4个季度,以及促销活动在每个季度各自带来的销售额,如图43所示。

 

43。一个经过钻取的透视表报表。

您可以发现几乎所有的销售额都发生在第一季度,这表明这种促销方式在刚刚推出时非常收欢迎,但是随着时间的流逝人们逐渐不再对它感兴趣了,这可能能够解释为什么在1998年没有进行这种促销活动的原因。

您可以使用页面上的快速透视界面来快速生成数据的不同切面,不过如果是浏览更加复杂的报表,请使用从名为透视表字段列表的浮动窗口(如图44所示)中将项目拖到报表中的方法。

 

44。透视表字段列表。

 

45。一个复杂的透视表报表。

 

显然透视表组件对于销售分析工作非常有用,不过您也可以使用它来对横跨多个类别的任何类型的数字数据进行汇总。如果和前一章中介绍的图表组件结合起来,那么它将成为一个强大的分析工具。在第7章中我们会看到一个真实的例子。

posted on 2006-06-19 16:01  yiriqing  阅读(546)  评论(0编辑  收藏  举报