蚕动:联机分析之惊艳

    当越来越多的组织认识到联机分析的需要以及其带来的巨大收益的时候,分析型的用户就会增加。在人类的历史上,只有很少一部分运筹学专家曾经负有这样的责任:为企业开展如此高端的分析。06

    ——埃德加·科德,关系型数据库之父,1993年

    数据仓库的物理结构出现以后,活跃在前沿的科学家一下子找到了自己的专属“阵地”,商务智能的下一个产业链:联机分析,如水到渠成般迅速形成。数据仓库开始散发真正的魅力。

    联机分析(Online Analytical Processing),也称多维分析,本意是把分立的数据库“相联”,进行多维度地分析。

    “维”是联机分析的核心概念,指的是人们观察事物、计算数据的特定角度。例如,跨国零售商沃尔玛如果要分析自己的销售量,它可以按时间序列分析、商品门类分析、地区国别分析,也可以按进货渠道分析、客户群体分析,这些不同的分析角度,就叫“维度”。

    分析问题的任何角度,都可以视为一个或多个维度的交叉。例如:

    沃尔玛2011年在美国纽约州的销售量是多少?这是个“地区”和“时间”两个维度交叉的问题。

    沃尔玛2011年在纽约州奶制品的销售量是多少?这是个“地区”、“时间”和“产品类别”三个维度交叉的问题。

    沃尔玛2011年在纽约州进口奶制品的销售量是多少?这是个“地区”、“时间”、“产品类别”及“供货渠道”四个维度交叉的问题。

    随着维度的不断增多,问题可能变得很复杂。三个维度就是三度空间,也可以想象成一个立方体。一旦超过了三个维度,人类的思维和想象能力就受到了很大的限制。

    理解一个维度或两个维度的交叉

    蚕动:联机分析之惊艳 - 图1

    加粗方块(上):表示2009年纽约州奶制品的销售量

    加粗方块(下):2008年加州蔬菜的销售量为20亿美元

    理解时间、产品和地点三个维度的交叉

    蚕动:联机分析之惊艳 - 图2

    横割(地点和产品两个维度的交叉):所有年份(本图只有2008年至2010年)纽约州和麻州水果的总销量,为横向加粗部分

    竖切(时间一个维度):所有州、所有产品(本图只有3个州、3种产品)在2009年的总销量,为纵向加粗部分

    说明:为了绘图的方便,这个例子每一个维度只取了3个值。事实上,每个维度的值都可以无限制增加,例如,年份可以增加2005、2006、2007年等,产品可以增加甜点、咖啡等,地点可以增加佛州等。

    同时,一个维度,还可以下钻细分(drill down)。例如,就时间的维度而言,问完了一年的销量,分析人员可能会对半年的、一个季度的销量,甚至每个月、每一天的销量感兴趣;又如,就地点的维度而言,知道了纽约州的销量,分析人员可能又立刻想知道某个地区、某个城市甚至某个小区的销量。

    和下钻相对应的,是上卷(roll up),例如,从各个州的销量,加总到全美国的销量,就是一个典型的上卷。

    理解下钻和上卷

    蚕动:联机分析之惊艳 - 图3

    下钻:可以按“年—半年—季度—月—日”的层级一直下钻到每一天加粗部分:下钻到半年——2009年下半年3个州、3种产品的总销量

    上卷:这个例子里只有3个州,如果有50个州,就可以上卷到全国

    以关系型数据库为基础的运营式信息系统,事实上,也可以回答以上任何一个问题,但它回答问题的方式,是通过事先设计的报表,也就是说,根据用户指定的条件,由软件开发人员事先一一定制,通过“一对一”的查询,将结果通过报表的形式返回给用户。

    报表,是关系型数据库时代将数据转化为信息和知识最主要的手段。

    基于一或两个维度的分析,是简单报表;交叉的维度越多,报表就越复杂,而且不同维度的组合将产生不同的报表,对一个立足于决策的用户来说,他的需要是“动态”的:他可能问出任意维度交叉和细分的问题,但软件开发人员只能将最常见的问题定制在软件中。没有定制的问题,系统就无法回答。所以,在联机分析技术出现之前,这种静态的、固定的报表根本无法满足决策分析人员的全部需要。

    蚕动:联机分析之惊艳 - 图4
    埃德加·科德(1923-2003)
    英国人,1948年移居美国,加盟IBM,因提出关系型数据库,获得1981年图灵奖。1993又率先定义了“联机分析”(OLAP)。(图片来源:维基百科)

    早在1960年代,研究人员就意识到了这种“动态”决策需求和“静态”报表之间的矛盾,决策支持系统的先行者就开始探索联机分析的方法。1970年,第一个联机分析的产品就已经问世。它通过建立一个复杂的、中介性的“数据综合引擎”,把分布在不同系统的数据库人为地联结起来,实现了联机分析。

    1993年,发明关系型数据库的科德再一次站到了创新的潮头。他发表了论文《信息技术的必然:给分析用户提供联机分析》(Providing OLAP to User-Analysts: An IT Mandate),在这篇文章中,他详尽地阐述了联机分析的定义,并为如何构建联机分析提出了“黄金十二定律”。他形象地比喻说:

    “用关系型数据库来分析数据,是试图用‘锤子’把一个‘螺丝钉’硬生生地‘敲’进墙,虽然最后可以勉强完成任务,但很费劲,为什么不用‘螺丝刀’呢?”

    科德认为,联机分析就是解决“数据分析”问题的“螺丝刀”。其惊艳之美在于用户可以根据自己的需要随时创建“万维”动态报表,也就是说,报表的定制权由后台的开发人员直接转移到了前端的用户。

    有了联机分析,用户可以自己随时创建自己所需要的报表,开发人员只需要预先为用户在后台构建多维的数据立方体(Cube)。一旦多维立方体建模完成,用户可以在前端的各个维度之间自由切换,并可以从不同的维度、不同的粒度对数据进行分析,从而获得全面、动态、可随时加总或细分的分析结果。在多维立方体的构建和运算方面,曾在IBM和微软工作过的詹姆斯·格雷(James Gray)多有贡献,他也于1998年获得了图灵奖。

    因为有了数据仓库,不再需要不同数据库之间的人为“联机”,联机分析找到了真正的用武之地,如有源之水,活力四射。任何复杂的报表,都可以在鼠标的瞬间点击之下从用户的指尖弹出,数据尽在手中,如玲珑剔透的水晶体,任意横切竖割,流畅的美感令人叹为观止。