为什么要建立数据仓库
文章转自:http://chinabi.net/blog/user1/105/390.html
这是IT pub上一篇帖子引发出的问题,以前还真没去仔细思考这个问题:为什么要建立数据仓库,数据仓库和数据库的区别?因为理论上的优点说法都很多,但要真正很好地理解,能简洁地向客户阐述明白,让客户觉得建立数据仓库是一件值得做的事情,还是值得讨论一下这个问题。有如下一些朋友们说法(自己在批注处谈点个人的意见):
A
数据库是一个装数据(信息的原材料)的地方。
数据仓库是一种系统,这种系统也是用数据库装东西。(这有点没说清楚:个人理解数据库和数据仓库当然都是装数据的地方,关键的区别是装的什么样的数据,数据库装的原始数据,没经过任何加工;而数据仓库是为了满足分析需要,对源数据进行了Transform过程,具体是怎样一个处理过程,可以从Bill Inmon的仓库定义四个特性进行理解。)
数据仓库系统(用数据库装东西)与其他基础业务系统(例如财务系统、销售系统、人力资源系统等,也是用数据库装东西)的区别是:
基础业务系统的特点是各管各的,例如财务系统生产了白菜,那么用一个数据库来装,人力资源系统生产了猪肉,再用一个数据库来装。我要做一道菜,需要分别到各个数据库去取,比较麻烦(现实的情况是大部分时候让种菜的农民伯伯送过来,但送过来的东西不一定是我想要的,而且不同的时候我想要不同的东西,经常会被农民伯伯骂,弄得双方都不开心)。另外一方面,各个数据库中放的是一些比较原始的东西,我要拿过来做菜,还需要经过很麻烦的清洗过程,一不小心里面可能就藏着一条大青虫。
那么,数据仓库系统就是建立一个大的超市,将各地农民伯伯出产的东西收集过来,清洗干净,分门别类地放好。这样,你要哪种菜的时候,直接从超市里面拿就可以了。
B
早期一直不理解数据仓库是什么困惑得很。
宏观一点讲,数据仓库就是堆放公司所有数据的地方,之所以把数据都堆在一起,是为了从中间找到有价值的东西。
数据仓库更多的是一个概念,不要把数据仓库想成那些号称是数据仓库的软件产品们。(数据仓库的建立和数据挖掘都是一个过程,可以从数据仓库生命周期和OLTP系统生命周期的区别进行理解,数据挖掘过程CRISP-DM)
数据仓库的物理上就是数据库。相对业务系统数据库叫OLTP数据库(用于业务处理),这种数据库叫OLAP数据库(用于业务分析,不知道有没有这种说法,个人觉得OLAP和数据库还是不能简单地称为OLAP数据库的;OLAP是针对特定问题的联机数据访问和数据分析而产生的一种技术,它满足DDS从多种角度对数据进行快速、一致、交互地分析,克服传统DDS交互能力差的弊病,使决策者能够对数据进行深入观察。OLAP服务器使用为用户预定义的多维数据视图对数据仓库的信息进行统计分析处理,为具有明确分析范围和分析要求的用户提供高性能的决策支持在线分析处理,只是基于DW上的一种多维分析方式,当然我也可以不用OLAP,直接做基于DW的DM)。
数据仓库的概念是针对以下基本需求产生的:
公司的业务系统很多,业务系统的历史数据不方便查询。不同的业务系统往往管理部门不同,地域不同。能不能将所有这些数据集中起来,再淘淘有没有有意义的业务规律。
数据仓库数据库往往很大,因为公司所有的数据集中得越多,越能淘到有价值的发现。例如随便就100G以上。
数据仓库的组成十分繁杂,既有业务系统的历史数据,又有人事、财务数据,还要自己建一些基础性的数据,例如,公共假期数据、地理信息、国家信息等等。
数据仓库概念包含从业务生产系统采集数据的程序,这个程序还不能影响业务系统的运行。(属于所谓“ETL”过程)
数据仓库包括业务系统长期的历史数据,例如5年,用来分析。(所谓“ODS”数据)
数据仓库包括针对某相业务值(例如销售量)重新打上标签的业务流水数据。(所谓“事实表”、“维度表”)。
数据仓库概念兴许还包含报表生成工具(所谓“BI”工具)。这些工具能够达到几年前所谓DSS(决策分析)的效果。
数据仓库的客户历史资量的分析,也许又与CRM系统粘点边。
总之,一点,一个公司想针对已有的历史业务数据,充分的利用它们,那么就上数据仓库项目。至于哪些吓唬人的大写字母的组合,只是达到这个目标的科学技术罢了。
牢记住数据仓库的基本需求,不要被供应商吓着。
C
数据仓库可以说是决策支持系统(个人不同意这个观点,决策支持系统(DDS)是在管理信息系统的基础上发展起来的,在数据仓库、OLAP技术和数据挖掘工具出现以前,就已经有DSS了,但其在实际应用开发过程中暴露出许多问题,DW为克服传统DDS存在的问题提供了技术上的支持,基于DW上的DSS效果自然有很大提升),能帮助老板了解企业的整体全貌,看到数据仓库提供的经过整理统计归纳的数据后老板凭自己的管理经验可以发现企业的问题或困难或成功因素在哪一方面,然后可以不断的追溯数据,直到确定到最具体的细节上,这样能够不断提升老板或管理层的管理水平,不断改善企业的管理。我们知道的最好的一个例子就是美国某大型超市啤酒和尿布的故事。
沃尔玛公司在美国的一位店面经理曾发现,每周,啤酒和尿布的销量都会有一次同比攀升,一时却搞不清是什么原因。后来,沃尔玛运用商业智能(Business Intelligence,简称BI)技术发现,购买这两种产品的顾客几乎都是25岁到35岁、家中有婴儿的男性,每次购买的时间均在周末。沃尔玛在对相关数据分析后得知,这些人习惯晚上边看球赛、边喝啤酒,边照顾孩子,为了图省事而使用一次性的尿布。得到这个结果后,沃尔玛决定把这两种商品摆放在一起,结果,这两种商品的销量都有了显著增加。
数据库是数据仓库的基础。数据仓库实际上也是由数据库的很多表组成的(这句话明显不成立,数据仓库里表分为事实表和维表,这和数据库里的表还是有本质区别的,组织方式完全不一样,一个是面向主题,一个是面向业务的)。需要把存放大量操作性业务数据的数据库经过筛选、抽取、归纳、统计、转换到一个新的数据库中。然后再进行数据展现。老板关注的是数据展现的结果。