第1章商业智能:数据分析基础本章目标:●理解商业智能系统的用途和结构●理解多维数据分析的概念●学习如何使用数据仓库实现维度数据模型●学习如何使用分析服务实现维度数据模型1.1 商业智能简介商业智能(Business Intelligence,BI)是从一个公司的运行系统或外部资源所包含的数据中获得的信息。
商业智能有助于我们更好更快地做出决策。
假设你现在是一家新创公司的总经理,公司名为Adventure Works Cycles(下文简称AWC公司),面向北美、欧洲以及亚洲制造和销售自行车、自行车部件、运动服饰和相关配件。
AWC公司需要发展,可目前有限的资源无法支撑其壮大。
但是为了公司的发展你必须做出决策,而为了做出合理的决策,你需要一些特殊的信息。
你可能会阅读《华尔街日报》来把握最新的商业趋势,或者在收藏夹中保存网站的书签。
所有这些信息以及你积累的经验会让你做出一个主观的、凭直觉的(gut-feeling)决策。
但事实上,你可能希望自己的决定是客观的、有数据支撑的。
需要的数据包括公司的订单处理、会计报表、人力资源以及其他的商业系统。
同时还需要一个由第三方提供的市场预测数据和汇率信息。
这时,需要一个能将所有这些信息汇总起来供今后使用的工具,这个工具就是商业智能系统。
商业智能系统是一种解决方案,它能从多个数据源收集数据,将各种数据进行转化使之一致并能存储在同一个位置,为你进行分析和制定决策提供数据支持。
商业智能系统至多由以下五层组成:(1) 数据源层(2) 数据转换层(3) 数据存取层(4) 分析层(5) 表示层数据源层包含的数据有:①维护公司日常运作的系统中的数据,包括文本文件、Excel电子表格文件或Access数据库文件中的数据;②从外部源中获取的数据。
由于这些数据从不同的数据源中获得,因此很难直接利用它们创建报表和进行分析。
数据转换层用于从不同数据源提取数据,修改数据使其内部一致,并将修改后的数据载入数据存储系统。
数据存取层是在关系数据库管理系统(RDBMS)中创建的数据仓库。
数据仓库是一个记录系统,包含了公司中可信的数据。
成熟的企业数据仓库包含了与该企业相关的所有数据。
数据仓库繁忙而复杂,数据每月、每周、每日或者以更频繁的频率被装载进来,日夜不停地进行报表生成和分析查询。
为了减小数据仓库的压力,同时简化用户的访问,同一个主题(individual subject area)的有关数据被提取出来,进行汇总并装载入数据集市(data mart)。
数据集市可以是关系型数据库,也可以是联机分析处理(OLAP)数据库。
本书讨论的分析服务正是多维联机分析处理数据库的一个例子。
商业智能系统中的分析层用于把数据(data)转化成信息(information),并且向决策者提供了一个便捷的访问渠道。
多维联机分析处理数据库构成了商业智能系统的分析层。
当详细信息从数据仓库装载到多维联机处理数据库时,汇总信息已经被预先计算了。
由于汇总信息存储在数据库中,报表和分析请求能被很快执行。
当数据装载到多维联机分析处理数据库时,元数据(metadata)被加入数据中。
元数据是关于数据的数据。
在联机分析处理数据库中,元数据包括数据中的关系和层次结构,数据是如何被分类和汇总的以及数据应该如何进行格式化以便于展示。
元数据让联机分析处理数据库中的数据变成了信息。
而复杂的计算能在联机分析处理数据库中被创建和存储。
这将使信息访问变得非常容易,因为相关用户不必重复地创建各种复杂的计算,并且公司中的所有人都可以使用准确且统一的计算公式。
报表及可视化工具构成了商业智能系统中的表示层。
表示层中的应用程序能查询数据仓库、数据集市或多维联机分析处理数据库,并将数据表示为各种不同的格式。
商业智能系统可以将报表发送到外部的销售人员和配送人员的移动电话上,来指示他们每天的工作。
分析工作流图说明了复杂的商业处理过程,图上每个节点提供了决策者所需的信息以便其能做出高价值(high-valued)的决策。
交互式分析报表利用其“切片和切块”、深入分析功能和多维数据的可视化技术帮助管理者和分析员找出问题所在,从而找到必要的信息,帮助公司更有效地运行并充分地利用新的机会。
仪表板报表提供了关键绩效指标(KPI),使管理人员能够快速地判断当前公司是否按照其战略目标在运行。
对商业智能系统的具体组成我们不必教条。
商业智能系统可以由上面提到的全部或部分层组成。
例如,要在一个准实时的监控系统中使用分析服务,我们可以每隔几分钟直接将数据从制造系统控制数据库载入多维OLAP数据库。
接着,商业智能系统的表示层从分析服务中读取数据并以图表的形式将生产线上每台机器的情况显示出来,并通过与其长期平均运行状况比较,来判断目前运行情况的好坏。
在这个商业智能系统中没有数据仓库,同时数据转换层和分析层被结合了起来。
商业智能系统的复杂程度并不重要,重要的是在需要的时候,它能提供与决策相关的信息,这些信息应该易于理解,有说服力,可靠,同时应能够快速方便地访问和操作。
1.2 多维数据分析我们使用商业智能系统来进行多维数据分析。
不要被多维数据分析这个术语吓到。
其实我们进行多维数据分析已经有一段时间了。
你可能曾经读过按各个不同属性显示数值的报表(例如按客户细分按月来做的调查),这就是多维数据分析。
在这种情况下,客户细分和月份都是用于分析调查数据的维度。
在本小节中,我们将学习多维数据分析中的一些概念,如属性、层次结构和维度,为第2章的学习做准备。
在第2章中,我们将学习多维OLAP数据库以及分析服务的独特优势。
1.2.1 数据分析中的属性为了帮助你理解属性和层次结构的概念,设想这样的场景,你是AWC公司的总经理,希望更多地了解公司的业绩,于是从业务分析员处获得了如表1.1所示的一份报表。
表1.1 AWC公司业绩42看到这个表格后你可能会发懵。
的确,这应该是某个问题的答案,但是这是什么问题?这份报表没有意义。
没有上下文的数字可能是数据,但不是信息。
在商业智能中,用来监控公司运行的可概括的数值被称作度量值(measure)。
在寻找数字信息的过程中,首先要做的就是确定所需要的度量值。
度量值可以是“销售额”(Sales Dollars)、“发货量”(Shipment Units)、“每小时残次品数”(Defects Per Hour)或“广告战的效果”(Ad Campaign Response)等。
我们来看一下AWC公司的销售报告,如表1.2所示。
表1.2AWC公司销售报表销售量70通过增加标签,数字从数据变成了信息。
我们从中可以知道,70代表了销售量。
这个标签就是元数据(metadata),即关于数据的数据。
商业智能应用程序将数据转换成信息的方式之一是通过增加元数据。
只看单个数据,我们并不能得到许多信息,因此我们希望将数据打散使其包含更多的信息。
例如,要知道公司在一段时间内的业绩如何,就需要如表1.3所示的月度分析报表。
表1.3 AWC公司月度分析报表2011年1月2011年2月2011年3月2011年4月4 14 27 25由于有更多的元数据,我们获得了更多的信息。
每个销售量的一个属性是该销售发生的月份。
公司已经运作了4个月,因此在表的最上方一行是月份的属性标签。
值得注意的是,月份标签是按时间顺序排列的,而不是按字母顺序或随机排列的。
报表中属性标签出现的顺序也是元数据,这对于帮助了解公司在一段时间内的业绩至关重要。
你可能对前面的月度报表还不满意,因为公司不止销售一种产品。
每种产品在各个时间段表现如何呢?此时需要如表1.4所示的按照不同产品和月份生成的一份新报表。
表1.4 AWC公司按产品和月份列出的销售报表产品2011年1月2011年2月2011年3月2011年4月Mountain-500 Black,40 1 3 1 2Mountain-500 Black,44 2 1Mountain-500 Black,48 1 2 1Mountain-500 Silver,40 1 2 1Mountain-500 Silver,44 1 1 1Mountain-500 Silver,48 2Road-750 Black,44 10 7Road-750 Black,48 5 9Hitch Rack 1 6 6 3由于有更多的元数据,我们现在获得了更多的信息。
每个销售量的值都有两个属性:特定的月份和特定的产品。
公司总共生产三种产品模型,由于尺寸和颜色的不同,共有9种不同的产品。
因此,报表左列共有9个属性标签,分别对应每一种产品。
表1.4显示了AWC公司详细的销售数据,由于AWC是家小公司,我们可以很容易通过查看类似于表1.4的报表来了解AWC公司的业务情况。
然而,随着AWC公司的壮大,开始生产更多的产品,类似于表1.4的报表会逐渐增长到数页。
这种包含许多细节的行的报表会使我们难以了解公司的发展趋势。
心理学研究表明:大多数的人能够理解7个或7组项目,因此过多的细节会使管理者了解公司业绩变得非常困难。
研究还表明,人们通过分组(聚合)来处理过多的细节。
随着AWC公司的壮大,我们希望将日益增加的单个产品信息以模型、子类、类别来进行分组,理想的情况下,每组包含7件产品。
通过寻找共有属性,可以创建产品分组。
如表1.5所示,可以将产品名按照模型名、颜色和尺寸属性进行划分。
表1.5 产品属性产品模型颜色尺寸Mountain-500 Black,40 Mountain-500 黑色40Mountain-500 Black,44 Mountain-500 黑色44Mountain-500 Black,48 Mountain-500 黑色48Mountain-500 Silver,40 Mountain-500 银色40Mountain-500 Silver,44 Mountain-500 银色44Mountain-500 Silver,48 Mountain-500 银色48Road-750 Black,44 Road-750 黑色44续表产品模型颜色尺寸Road-750 Black,48 Road-750 黑色48Hitch Rack Hitch Rack我们得到了三个额外的产品属性标签列表,可以据此在报表中创建分组。
由于“属性标签列表”这个表达过于繁琐,商业智能从业者就将每一个属性标签列表称为属性。
由于每一属性标签列的标签都相互关联并属于一个相同的属性,这些标签被称为成员。
例如,“模型”属性有三个成员:Hitch Rack、Mountain-500和Road-750;而“颜色”属性具有两个成员:Black和Silver。
“产品”属性被称作关键属性。
关键属性唯一地确定了成员的所有其他属性。