首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 数据库开发 >

关于什么是数据仓库的一次会话

2012-11-04 
关于什么是数据仓库的一次对话前几天一个开发同事见我桌面上有一本书数据仓库,问我什么是数据仓库,因为

关于什么是数据仓库的一次对话
前几天一个开发同事见我桌面上有一本书<数据仓库>,问我什么是数据仓库,因为他算是外行,于是发生一次有意思的对话,现在想起来,也挺有意思的.
问:数据仓库有什么特别的地方?
答:没什么特别,跟普通关系数据库没什么两样.
问:啊,那有什么特别?
答:数据仓库本身物理上也是关系数据库,只是数据仓库系统是一个体系,一个过程.数据仓库技术要解决的问题是如何建立,管理,维护运行一个数据仓库.
问:数据仓库跟普通数据库存储的数据不一样?
答:数据仓库面向分析,普通业务数据库面向交易,我们公司产品就是业务数据库.面向分析的数据库重点在查询,业务数据库重点在修改更新.
问:数据仓库就是把业务数据库的数据抽出来建立新的数据库,专门供分析查询用?
答:可以这么说,不过不是简单的抽取,因为两者的应用不同,所依赖的数据模型不同,数据仓库主要采用多维模型,而业务数据库采用关系模型。所以,抽取的过程是一次模型的转换,从关系模型转换为多维模型,这个过程业界成为ETL,除了转换外,还要考虑数据集成,清洗等。
问:可是你不是说数据仓库物理上也是关系模型,怎么表示多维模型?
答:业界用称为星型结构的多个表来表示多维模型,多个维表围绕在事实表转,其中事实表表示数据,维表表示维度。多维模型也成Cube,立方体,边是维度,格子是发生数据。
问:那OLAP是什么,数据仓库不就是OLAP吗?
答:OLAP是联机分析处理的意思,OLAP是一本技术,它的产品分为服务器和前端产品,OLAP服务器也叫做多维数据库,数据仓库跟OLAP的关系,就像父亲和孩子的关系,广义的数据仓库包含OLAP,有些产商把两者混起来。但是,实际上数据仓库可以脱离OLAP存在,不供OLAP使用。这个比较复杂,很难一下说清楚。
问: 再说说嘛。
答: 其实,OLAP技术是数据仓库的一种应用,OLAP一般基于数据仓库,也就是说,OLAP服务器中的多维数据,也是从数据仓库中来的。OLAP一般位为数据仓库之上,olap的作用是为前端报表或控件提供直观的易于分析的多维数据,是数据与信息之间的一种桥梁。
问: OLAP还是挺神奇的,它到底能干什么?
答: OLAP技术其实定义了一些逻辑模型,包括结构模型和行为模型,结构模型即维度、Cube模型,把现实的数据以多维的形式来表达,有利于分析。为什么有利于分析呢,行为模型就是定义在结构模型之上的分析行为,包括维度自由组合、旋转、钻取等等,而这些行为是比较直观的,符合人脑的思维习惯。
问: 等等,钻取是什么,好像很熟,是数据挖掘吗?
答: 晕,数据挖掘跟这不搭边的,等下再说。钻取是从高粒度的数据钻到低粒度的数据中,比如从广东省的汇总数据钻到各个城市的数据。这在以前的报表工具中是很难实现的。
问: 怎么做到钻取?
答: 其实,维度不是线性的,而是一颗树,术语叫“带有层级关系的维度”,这个层级关系就定义了父子关系,钻取路径。
问: 哦,还是晕,那我们自己的OLAP工具在做什么。
答: 我们自己的OLAP工具有别于国外产商,我们没有存储,也就是没有OLAP服务器的概念。我们有OLAP前端和OLAP服务引擎,服务引擎直接从业务数据库或者数据仓库中抽取数据生成Cube模型的数据,OLAP前端组件比如表格和图形,将Cube模型的数据表现出来,并提供分析功能。也就是说,我们的OLAP定义了一套OLAP模型,就是上面说的结构模型和行为模型,服务引擎负责把关系模型的数据转换为多维模型,并提供了OLAP分析行为借口,前端能够识别这个OLAP模型。其实,OLAP技术只是定义了一些模型,并未定义如何实现,每个专业产商都有自己的实现和理念。有些产商的产品根本就没有OLAP产品,它也能实现OLAP分析功能。
问: 哦,听起来挺不错的,有空研究研究。
答: 千万别,不懂更好:)

后记: 过了一会儿,我听到他跟他们项目经理说:“他们组做了一个3D引擎,能够将数据库数据变成3D图形”,吐血。

热点排行