三位数据大师
先讲讲Edgar F.Codd(通常称为Ted)这个“数据”英雄的故事。他出生在1923年,在他年轻的时候,第二次世界大战爆发,于是他在英国皇家空军服役,在1942~1945年参加了战争,在战争结束后以机长身份退役。退役后他选择了去牛津读书,读的恰恰是非常非常难的数学。1948年,他取得数学学士学位以后到美国谋求发展。他先后在美国和加拿大工作,参加了IBM第一台科学计算机701以及第一台大型晶体管计算机Stretch的逻辑设计,主持了第一个有多道程序设计能力的操作系统的开发。他自觉硬件知识缺乏,于是在60年代初,到密歇根大学进修计算机与通信专业(当时他已年近40),并于1963年获得硕士学位,1965年取得博士学位。
1970年47岁的Ted在《ACM通讯》[1]上发表了一篇论文《大型共享数据库数据的关系模型》,就是这篇文章使数据库技术的伟大时代到来了,目前政府信息、企业信息和互联网信息均是基于各企业、各政府的数据库运行环境,无数的数据库环境构建出整个社会的数据计算、数据存储和数据交互,使我们能够充分享受信息时代的各种便利。单就数据库这个产业本身而言,一年的全球产值就高达几百亿美金。
此论文创造性地、明确而清晰地为数据库系统提出了一种崭新的模型,即关系模型。“关系”(relation)是数学中的一个基本概念,由集合中的任意元素所组成的若干有序偶对表示,用以反映客观事物间的一定关系。诸如数之间的大小关系、人之间的亲属关系、商品流通中的购销关系等。在自然界和社会中,关系无处不在;在计算机科学中,关系的概念也具有十分重要的意义。计算机的逻辑设计、编译程序设计、算法分析与程序结构、信息检索等都应用了关系的概念。而用关系的概念来建立数据模型,用以描述、设计与操纵数据库,Ted是第一人。
由于关系模型既简单、又有坚实的数学基础,所以一经提出,立即引起学术界和产业界的广泛重视,从理论与实践两方面对数据库技术产生了强烈的冲击。在关系模型提出之后,以前的基于层次模型和网状模型的数据库产品很快走向衰败以至消亡,一大批商品化关系数据库系统很快被开发出来并迅速占领了市场。其交替速度之快、除旧布新之彻底是软件史上所罕见的。此后,Ted又提出了SQL语言的前身SEQUEL。而SQL则被Oracle的Larry采用。在1977年,Larry与Ed Oates和Bob Miner一起研制了世界上第一个商用关系型数据库管理系统,在此过程中,创办了一个公司,后来成为Oracle[2]公司。
再讲讲Bill Inmon和Ralph Kimball这两位数据大师的故事。Inmon和Kimball两位大师这20年在数据仓库架构领域的大辩论,让商业数据分析和商业智能成为现实。
先来谈谈Bill Inmon。他被称为数据仓库之父,在1991年出版的《Building the Data Warehouse》一书中提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。其后在与Kimball的论战中提出了CIF(GIF)体系,目前被定义为DW2.0。DW2.0将文本数据和非结构化数据融入其中。
Ralph Kimball定义了数据仓库中的“数据集市DM”的概念,发展了数据仓库应用中的分析工具,利用三维层次,创造性提出星形架构和雪花数据结构的概念,同时他定义了一些数据仓库实施的模型,为很多实施者在实施数据仓库项目过程中提供了帮助,虽然Kimball的著作数量不如Inmon多,但Kimball的书是这十多年以来DW书籍中最畅销的。
Inmon和Kimball为了实现数据仓库系统的目标,提出了两个不同的实施理念。Inmon认为,应该在企业范围内实现全面的数据仓库(称为EDW);而Kimball认为,企业应该首先创建几个较小的数据集市(我们称为DM),以便实现部门级的分析和报告。从方法论而言,Inmon这种先创建EDW,然后分别支持各部门数据集市(就是数据集市DM作为数据仓库DW的子集)需求的方法,我们称之为“自上而下”;而Kimball恰恰相反,他认为先创建几个数据集市(DM)来满足企业各部门的分析需求,然后再通过数据“虚拟”的一致性手段(即我们所说的数据总线),整合成一个大的数据集市(这里这个大的数据集市就是EDW),这种方法我们称之为“自下而上”。
为了一个共同的目标,提出了不同的实现理念和方法,争论就开始了,恰恰是这种争论让我们生活在这个时代的数据仓库研究者和实施者们茅塞顿开、醍醐灌顶,从不同角度均能找到自己在数据仓库实践和理解上的共鸣点。
首先的争论在于数据结构上:Inmon认为,用第三范式[3](3NF)关系模型建立数据结构;Kimball认为,用多维度模型(星型模式和雪花模式)建立数据结构。Inmon认为,一旦数据结构是关系模型,会达到企业范围内数据的一致性,这样更容易生成多维模型的数据集市;而Kimball认为,从用户理解角度出发,多维模型的数据结构更容易理解、分析、汇总,并展开数据探索,而对企业范围内的数据结构而言,由于多维模型数据导致的企业级数据不一致性,可以采用数据总线来解决,对于数据集市,Kimball把它分为符合DW设计的原子级数据集市和汇总级数据集市,并均采用了多维模型来创建数据集市。值得肯定的是,在数据结构模型差异的争论中,Inmon和Kimball两位大师都赞同有必要分离聚合级数据的详细数据。
他们的第二个争论在于数据的粒度上,Inmon认为,在数据仓库中的内容要尽可能体现最细的粒度级别,必须包括所有可能范围内的企业的历史数据。他的理由很简单,给最终用户最最详细的数据,因为未来的数据需求是不可预知的。而Kimball对于数据的粒度把握完全取决于数据集市的实际需求。
虽然两位大师以不同方式形成了各自的数据仓库哲学,但是他们却相互借鉴,Inmon在单一数据仓库(EDW)建设中强调通过迭代的方法来阻止“数据大爆炸”的出现;而尽管Kimball的理念是快速创建,在几个月的时间内成功地创建数据集市,但他也强调通过信息总线上集成的一致性来实现。
我们简单总结两位大师的实现思路和方法,Bill Inmon主张将不同业务系统的数据集中到面向主题的、集成的、不能修改的和基于时间序列的数据仓库中,用于以后的分析;且数据可以通过下钻到最细层,或者上钻到汇总层;数据集市应该是数据仓库的子集;每个数据集市是针对独立部门特殊设计的。因此,数据的流向是,业务系统-ETL(部分整合和清洗)-ODS(视业务需求而定)-DW(3NF设计)-DM-OLAP。而Kimball说,“数据仓库仅仅是构成它的数据集市的联合”,他认为“可以通过一系列维数相同的数据集市递增地构建数据仓库”,通过使用“一致的”维,能够共同看到不同数据集市中的信息,这表示它们拥有公共定义的元素。
因此,Kimbal的数据仓库实施方法要快于Inmon的方法。对于Inmon的方法,只有在构建几个单主题区域之后,集中式的数据仓库才创建数据集市,而Kimbal认为该方法缺乏灵活性,并且在现在的商业环境中所需的时间太长。实际上,方法的选择取决于项目的主要商业驱动。如果该组织正忍受着糟糕的数据管理和不一致的数据,那么Inmon的方法会更好一些;如果该组织迫切需要给用户提供信息,那么Kimbal的方法将满足该需求。数据仓库将使数据集市与遗留系统和业务系统隔离,并且支持更快地创建将来的数据集市。遗憾的是,目前个别企业经常滥用Kimball的方法,并将之作为脱离集中控制而构建自己的数据集市的借口。当试图跨集市访问数据以获取联合视图时,这将造成严重问题,而集中式信息体系结构将避免这一点。
当我们现在回顾商业智能(BI)时,面对互联网和移动互联网时代的SNS、博客、微博等应用的兴起,基本上可以达成一个共识:商业智能(BI)=Inmon的企业数据仓库+Kimball的数据集市+数据挖掘+非结构化数据(含文本挖掘)。
进入2012年,大数据(big data)一词越来越多地被提及,人们用它来描述和定义信息爆炸时代所产生的海量数据,并命名与之相关的技术发展与创新。
数据正在迅速膨胀并变大,它决定着企业的未来发展,虽然现在企业可能并没有意识到数据爆炸性增长带来的隐患,但是随着时间的推移,人们将越来越多地意识到数据对企业的重要性。大数据时代对人类的数据驾驭能力提出了新的挑战,也为人们获得更为深刻、全面的洞察能力提供了前所未有的空间与潜力。
正如《纽约时报》2012年2月的一篇专栏中所写的那样,“大数据”时代已经降临,在商业、经济及其他领域中,决策将日益基于数据和分析而做出,而并非基于经验和直觉。哈佛大学社会学教授加里·金说:“这是一场革命,庞大的数据资源使得各个领域开始了量化进程,无论学术界、商界还是政府,所有领域都将开始这种进程。”
那么大数据究竟是什么呢?
[1]《ACM通讯》(Communications of the ACM, CACM)是计算机协会面向所有会员发行的一种杂志,于1957年创建。该杂志是最久远最受尊敬的计算机出版物之一。
[2]甲骨文公司,是全球最大的数据库软件公司,总部位于美国加州的红木滩。该公司向遍及145个国家的用户提供数据库、工具和应用软件以及相关的咨询、培训和支持服务。
[3]第三范式(3NF)是数据库规范化中所使用的一种正规形式,用来检验是否所有非键属性都只和候选键属性有相关性,也就是说所有非键属性之间应该是无关的。