OpenERP的BI(商业智能)模块绍介
-
一、尿布与啤酒的故事
尿布和啤酒的故事很出名,百度一下,能找出很多版本。下面是从数据仓库和BI的角度讲述的一个版本:
利用数据仓库, WalMart对商品进行购物篮分析 (Marketing Basket Analysis),即分析哪些商品顾客最有可能一起购买。 WalMart数据仓库里集中了各个商店一年多详细的原始交易数据。 在这些原始交易数据的基础上, WalMart利用自动数据挖掘工具(模式识别软件)进行分析和挖掘。一个意外的发现就是:跟尿布一起购买最多的商品竟是啤酒!按常规思维,尿布与啤酒风马牛不相及,若不是借助于数据仓库系统,商家决不可能发现隐藏在背后的事实:原来美国的太太们常叮嘱她们的丈夫下班后为小孩买尿布,而丈夫们在买尿布后又随手带回了两瓶啤酒。既然尿布与啤酒一起购买的机会最多, WalMart 就在它的一个个商店里将它们并排摆放在一起,结果是尿布与啤酒的销售量双双增长。
大概为了增加故事的传奇性,各个版本的故事都显得过于“突兀”。实际情况更可能是,某些业务人员发现,下班时候,很多人买了尿布和啤酒,于是在想,是不是尿布和啤酒有什么关系呢?这个时候,要是我们国内的企业,很可能是一拍脑袋就把尿布和啤酒摆放到一起了。但是美国人讲究数字化管理,他们分析过去一年的数据,用数字来验证自己的感觉是否正确。
分析大量的数据,从中发现一些有用的潜在联系,或者验证自己的某些想法,然后制定出合适的措施,这就是商业智能(BI)要解决的问题。
二、商业智能(BI)的用途
商业智能(BI)主要为经营管理层使用,为制定企业战略服务。作为企业战略层,其主要工作是发现问题和机会,及时采取恰当的干预措施或战术动作,防止问题的危害,攫取机会中的收益,形成政策,下发到中层执行。
战略层如何及时发现问题和机会呢?一个途径是分析公司的运营数据,挖掘有益的信息。下面是基于数据挖掘和分析的经营管理模型示意图。
[attachimg=2]
典型的商业信息系统有两类应用,一类是在线事务处理(OLTP),一类是在线分析处理(OLAP)。订单处理和订单查询就是典型的OLTP, OLTP通常用于辅助基层作业人员完成日常业务工作。OLTp围绕简单的数据选择和很少的计算过程,它直接从事务系统中得到响应。OLTP是商业数据采集的基础,是数字化分析和管理的最基层设施。
OLAP通过分析OLTP中收集的大量数据,回答更大范围的、更全局性的商业问题。例如,
· 这个季度在欧洲我们的10大收益产品的销售状况与去年相比怎么样?
· 地区的产品销售与全球的销售相比区别是什么?
· 我们的预计、服务的价格、每个产品的成本、销售、成本趋势和未来12个月的利润都是怎样的?
· 过去哪些产品构成了我们各个地区收益的40%?
相比OLTP,这些问题更具分析性和复杂性。OLAP更大的挑战性在于,OLAP的使用人员通常是商业分析人员,而不是IT人员,商业分析人员没有很多IT知识,但他们要求快速得到结果以便思路不会打断。前述的问题,如果用SQL语句加报表来实现,存在的问题是,需要太多的IT知识,缺乏及时性,不能立即得到结果,缺乏柔性,不能随意改变分析角度,严重影响OLTP运行效率。
OLAP常见的应用领域包括,市场分析、趋势分析、改善经营方式、降低库存成本、掌控全局运行状况。
[b]市场分析[/b]
WalMart 利用数据挖掘工具和统计模型对数据仓库的数据仔细研究,以分析顾客的购买习惯、广告成功率和其它战略性的信息。 WalMart每周六的高级会议要对世界范围内销售量最大的15种商品进行分析——然后确保在正确的时间、正确的地点有正确的库存。
[b]趋势分析[/b]
WalMart 利用数据仓库对商品品种和库存的趋势进行分析,以选定需要补充的商品,研究顾客购买趋势,分析季节性购买模式,确定降价商品,并对其数量和运作作出反应。为了能够预测出季节性销售量,它要检索数据仓库中10万种商品一年多来的销售数据,并在此基础上进行分析和知识挖掘。WalMart 神奇的增长在很大程度上归功于建立了基于 NCR Teradata的数据仓库系统。
[b]改善经营方式[/b]
作为微观销售的一种策略,合理的商品布局能节省顾客的购买时间,刺激顾客的购买欲望。 Wa*Mart利用前面提到的市场类组分析 (MBA),分析顾客的购买习惯,掌握不同商品一起购买的概率,甚至考虑购买者在商店里所穿行的路线、购买时间和地点,从而确定商品的最佳布局。
[b]降低库存成本[/b]
加快资金周转、降低库存成本是所有零售商面临的一个重要问题。 WalMart 通过数据仓库系统,将成千上万种商品的销售数据和库存数据集中起来,通过数据分析,以决定对各个商店各色货物进行增减,确保正确的库存。数十年来, WalMart的经营哲学是"代销"供应商的商品,也就是说,在顾客付款之前,供应商是不会拿到它的货款的。NCR 的 Teradata 数据仓库使他们的工作更具成效。数据仓库的决策支持系统每周要处理2.5万个
复查查询,其中很大一部分来自供应商,库存信息和商品销售预测信息通过电子数据交换(EDI) 直接送到供应商那里。数据仓库系统不仅使 WalMart省去了商业中介,还把定期补充库存的负担转到供应商身上。1996年底, WalMart开始通过 Web站点销售商品,商品都是从供应商处直接订货。 Web站点销售相当成功,在其投入运营的第1个周末就卖出了一百多万件商品。
[b]掌控全局运行状况[/b]
各个商店在传送数据之前,先对数据进行如下分组:商品种类、销售数量、商店地点、价格和日期等。通过这些分类信息, WalMart对每个商店的情况都有细致的了解。在最后一家商店关门后一个半小时,WalMart已确切知道当天的运营和财政情况。凭借对瞬间信息的随时捕捉,WalMart对销售的每一点增长、库存货物百分比的每点上升和通过削价而提高的每一份销售额都了如指掌。
三、商业智能(BI)的关键概念
BI数据分析的基本原理是,从各个信息系统中抽取数据,形成数据立方体(Cube),也叫多维数据集。Cube由维和度量值组成。例如,销售处理系统中,记录了每一单销售的商品名、销售时间、顾客地区、销售金额。如果希望按品名、季度、地区分别查看销售额,如果用BI系统来解决这个问题,那么先要生成由维(品名、月份、地区)和度量(销售额)组成的Cube,如下图所示。有了这个Cube,就很容易查看某一季度的销售额,或者某一季度各地区的销售额,等等。
[attachimg=1]
上述的介绍中,涉及了BI的几个重要概念,
度量(Measure):就是想要查看的数据字段,有时被称为“事实”。度量的典型例子有销售额、成本、收益、利润等。度量的值叫度量值(Value)。
维(Dimension):对度量进行分类或划分的字段。维的例子包括产品、地理、时间、分销渠道等。维可以划分成子维(Level),如时间维可以进一步划分成季度。维的取值叫属性(Attribute)
多维数据集(Cube):按维、度量抽取出来的数据立方体(不限于3维),在Cube中,选取不同的维,能看到度量对象的不同值。简单的说,在Cube中,你可以从各种分类角度查看该分类下的数据值。
Schema:Schema定义Cube的维和度量,也就是说,Schema指明了一个Cube包含哪些维和度量。
四、商业智能(BI)的技术架构
商业智能(BI)的架构示意图如下。典型的BI系统包括ETL(数据抽取、转换、加载工具)、数据仓库、OLAP(在线分析处理)、报表工具几部分。
[attachimg=3]
[b]ETL[/b]:该部分从各业务系统中抽取、变换、加载数据到数据仓库。此部分通常提供一些配置手段,使得用户能够比较方便的从各种数据源取得数据,并设置规则,将数据变换成需要的形式。OpenERP带有ETL模块。
[b]数据仓库[/b]:用于存放ETL抽取回来的数据,此部分通常是经过数据仓库优化的关系数据库。用于数据仓库的关系数据库特别适于处理大数据量及多维数据集。Bizgres是以PostgreSQL为基础进行了数据仓库环境下的优化的数据仓库软件,在BI分析中,Bizgres比普通关系型数据库快20倍。OpenERP的BI模块直接以PostgreSQL数据库作为数据仓库。
[b]OLAP[/b]:通常是实现了MDX(多维数据查询,Multi-Dimensional eXpress)语言的多维数据集(Cube)查询器。MDX有些类似于SQL,但比SQL更简单,是数据分析语言的事实标准。OpenERP的BI模块支持MDX语言。
[b]报表工具[/b]:用于展现MDX的查询结果,通常提供方便手段访问和格式化数据,提供丰富的数据呈现方式。OpenERP的BI模块以pyChart作为报表工具,报表开发方法和OpenERP中的Graph视图类似。
五、OpenERP的BI模块
挖坑 待续。。。