前几天一个开发同事见我桌面上有一本书<数据仓库>,问我什么是数据仓库,因为他算是外行,于是发生一次有意思的对话,现在想起来,也挺有意思的.
问:数据仓库有什么特别的地方?
答:没什么特别,跟普通关系数据库没什么两样.
问:啊,那有什么特别?
答:数据仓库本身物理上也是关系数据库,只是数据仓库系统是一个体系,一个过程.数据仓库技术要解决的问题是如何建立,管理,维护运行一个数据仓库.
问:数据仓库跟普通数据库存储的数据不一样?
答:数据仓库面向分析,普通业务数据库面向交易,我们公司产品就是业务数据库.面向分析的数据库重点在查询,业务数据库重点在修改更新.
问:数据仓库就是把业务数据库的数据抽出来建立新的数据库,专门供分析查询用?
答:可以这么说,不过不是简单的抽取,因为两者的应用不同,所依赖的数据模型不同,数据仓库主要采用多维模型,而业务数据库采用关系模型。所以,抽取的过程是一次模型的转换,从关系模型转换为多维模型,这个过程业界成为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图形”,吐血。
分享到:
相关推荐
标题 "JavaEye博客文章——深入理解HTTP你的游戏" 这篇博客文章是关于深入理解HTTP协议的,作者通过"你的游戏"这个实例,详细讲解了HTTP在实际应用中的运作机制,特别是对于游戏开发而言的重要知识点。HTTP(超文本...
http://peterwei.javaeye.com/blog/968815 Ubuntu10下JDK1.6安装 http://peterwei.javaeye.com/blog/968758 Ubuntu10下Tomcat7安装 http://peterwei.javaeye.com/blog/968774 Ubuntu10下Eclipse3.6安装 ...
<web-app xmlns="... 网站名称</display-name> 网站描述</description> <!-- icon元素包含small-icon和large-icon两个子元素.用来指定web站台中小图标和大图标的路径....--small-icon元素应指向web站台中某个小...
在IT领域,尤其是在软件开发行业中,Java作为一种广泛使用的编程语言,拥有庞大的学习资源和社区支持。对于初学者而言,找到合适的学习资源是掌握Java技能的关键一步。以下是从给定文件中整理出的Java资源网站大全,...
- **J2MEForums**(http://www.j2meforums.com/forum/): 另一个关于J2ME开发的论坛,同样为开发者提供了讨论技术问题、分享经验的空间。 ### 2. 综合性IT技术社区 - **CSDN**(http://www.csdn.net/): 中国最大...
主要是将《Flex第一步》里使用FDS数据传输改为使用Hessian来实现,一些地方做了些简单的修改。 关于Flex使用Hessian进行远程调用,请参考: Flex + Hessian 学习笔记(一) ...
2. **淘宝数据仓库团队博客**:`http://rdc.taobao.com/blog/dw/archives/category/dw架构` - 分享了阿里巴巴集团内部如何使用Hadoop进行大数据处理的经验。 3. **Hadoop部署与升级**:`...
在探索Android开发的世界里,获取高质量的学习资料是成功的第一步。以下是从提供的文件中整理出的Android学习资源,包括论坛、博客和个人推荐的软件下载站点,旨在为初学者和进阶开发者提供全方位的支持。 #### ...
- Maven的中文手册可参考[http://www.juvenxu.com/mvn-def-guide/](http://www.juvenxu.com/mvn-def-guide/)和[http://juvenshun.javaeye.com/5](http://juvenshun.javaeye.com/5)。 **5. Maven项目导入Eclipse** ...
5. **JavaEye([http://www.javaeye.com/](http://www.javaeye.com/))** - **特点**:这曾经是Java开发者非常活跃的一个社区,虽然现在已不再更新,但其历史资料仍然具有很高的参考价值。 - **适用人群**:适合...
#### 一、引言 随着移动互联网的发展,Android作为全球最大的移动操作系统之一,在开发者社区中占据了重要的地位。为了帮助开发者更好地理解和使用Android的各种功能,Google提供了详尽的API文档。然而,由于语言...
6. **HTML5和CSS3资源分享**([http://www.javaeye.com/news/16684-html5-css3](http://www.javaeye.com/news/16684-html5-css3)) - 分享了一些高质量的HTML5和CSS3资源链接,有助于开发者扩展视野。 7. **CSS3...
JWFD v0.96.3开源工作流二次开发包官方下载地址 http://www.cnblogs.com/comsci/favorite/260690.html JWFD开源工作流官方博客 http://blog.csdn.net/comsci http://comsci.javaeye.com/ JWFD工作流设计器(带引擎...
在Struts中应用标签的数据库分页示例(dbpage.jsp),打开方法: http://localhost:8080/pagertaglib/dbPageAction.do?pageSize=5&pager.offset=0&pageNo=1<br>在Struts中应用标签但一次取数据在页面自动分页的示例...