设计和实现OLAP解决方案 [转]

第一讲 简介
首先,啥叫数据仓库?

数据仓库就是数据的仓库!用外文说叫Data Warehouse,简称DW。

是不是哐当倒下一片啊,要不咱换个专业点的说法?

数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的、包含商业信息的数据集合,用于支持管理决策。

看得懂不?谅你也不懂。

算了,别叫这真了。

等你明白了舍生取义,你自然会明白什么是数据仓库的。

数据仓库里面有大量包含商业信息的数据,但是我们很难从中捕获信息,因为数据仓库一般有很大的数据量,要整理这些数据还是很麻烦的。

OLAP系统就是来解决其中一部份目标的。

先说什么是OLAP,发音噢勒普。联机分析处理,还是看不懂吧?

就是让你高效访问数据仓库的。

相对应的有一个OLTP,叫联机事务处理,就是我们平常用的数据库。

OLTP通常有大量并发添加和修改,随时变化,包含大量的数据,具有复杂的结构。

当我们把OLTP装载到DW中,一般就不再有修改,随着数据的增加而定期更新,而不是随频繁发生的事务而更新。结构和安全性也更简化,目的是提高分析查询的效率,而不是进行事务处理。

还有数据集市,叫Data Mart,数据集市是数据仓库的一种特殊形式,典型的数据集市包含面向专门主题的适合特定业务功能的企业数据子集。

你可以认为数据集市是数据仓库的一部份。

第二讲 OLAP概述
OLAP 技术使数据仓库能够快速响应重复而复杂的分析查询,从而使数据仓库能有效地用于联机分析。OLAP 的多维数据模型和数据聚合技术可以组织并汇总大量的数据,以便能够利用联机分析和图形工具迅速对数据进行评估。当分析人员搜寻答案或试探可能性时,在得到对历史数据查询的回答后,经常需要进行进一步查询。OLAP 系统可以快速灵活地为分析人员提供实时支持。

通常的OLAP应用有财务报表、市场分析、市场计划、客户服务等。

目前国内已经有大量丰富的应用,比如银行、证券、电信、生产、销售行业,都有很多的成功案例。

在OLAP中,数据不再以关系型数据结构存放,而是以多维的数据结构存放。不再具有Detail的数据,而是只有Roll up后的信息。

微软的Analysis Service是一个不错的OLAP系统,一点不吹牛的说,它处理速度快,查询速度快,功能完整,支持海量数据,而且处理后的数据量很小,没有数据爆炸的问题。

第三讲 数据仓库结构

数据仓库的基本结构就是Star Schema和SnowFlake Schema,星型结构和雪花结构。

了解结构之前先得理解两个基本名词:事实表FactTable和维度表Dimension Table。

什么是事实和维度呢?我今天在U-mart买了两块巧克力,价格23.54¥。

这就是一个事实。其中包含的信息有客户:我;日期:今天;地点:U-mart;产品:巧克力;数量:2;价格:23.54¥。客户、日期、地点、产品就是维度Dimension,数量和价格是度量值Measure。

这就是一个星型架构。

维度表至少包含维度的Key和Name,Key和Name可以是同一列。维度也可能没有维度表,比如这个架构中的日期维度就没有维度表。

一个多维数据集架构Cube Schema有且只有一个事实表,不过你要用几个base table组合成一个view来做事实表也可以。(Cube 的Partition里面可以使用不同的事实表,这是后话。)

维度是有层次level的,一个维度至少有两个层次,在大多数情况下维度的成员会按金字塔形布局排列,最上面总有一个All的层次,比如客户维度就有(所有客户)-(客户)这两个层次。维度除了常规维度外,还有父子维度、虚拟维度等。后面会详细介绍各种维度。

如果一个维度有多于2个层次,那么这个维度可能有多个维度表,例如:

这样的就是雪花结构。

From: http://www.cnblogs.com/aspnetx/archive/2006/11/13/559214.html

时间: 2024-07-31 15:27:06

设计和实现OLAP解决方案 [转]的相关文章

设计和实现OLAP解决方案

设计和实现OLAP解决方案 第一讲 简介首先,啥叫数据仓库? 数据仓库就是数据的仓库!用外文说叫Data Warehouse,简称DW. 是不是哐当倒下一片啊,要不咱换个专业点的说法? 数据仓库是一个面向主题的.集成的.相对稳定的.反映历史变化的.包含商业信息的数据集合,用于支持管理决策. 看得懂不?谅你也不懂. 算了,别叫这真了. 等你明白了舍生取义,你自然会明白什么是数据仓库的. 数据仓库里面有大量包含商业信息的数据,但是我们很难从中捕获信息,因为数据仓库一般有很大的数据量,要整理这些数据还

Firefox下table单元格td设计relative定位失效解决方案(转)

问题描述: 默认情况下,table的单元格td的display为table-cell,在IE 给td设置position:relative,然后给它包含的一个容器使用position:absolute进行定位是有效的,但在FF下却不可以. 但是在IE下,position:absolute的容器的z-index总是比td的z-index低,td层总是在 position:absolute的容器的上面 发生条件: 1. IE6.IE7.IE8和FF浏览器 2. 使用td默认样式,设置td的posit

[XMove-自主设计的体感解决方案] 系统综述

一 . XMOVE 系统简介       X-MOVE是作者于2010年本科四年级年启动的运动传感模拟,建模和计算的平台,已经发展到第四代.利用优秀算法和自主设计的硬件,充分发挥传感器能力,搭建起全新人机交互和动作传感解决方案,并努力实现产品级成熟度. 目前开发了以下应用: 全身动作捕捉和重现 对使命召唤(COD),街霸,HAWX等主流游戏的体感控制的支持 空中3D鼠标(包含动作识别) 手机屏幕实现电脑触摸板 虚拟现实和远程机械控制 电子指南针 传感器数据采集,分析和重现 其他应用 系统涉及以下

Kylin-实践OLAP

OLAP的历史与基本概念 OLAP全称为在线联机分析应用,是一种对于多维数据分析查询的解决方案.典型的OLAP应用场景包括销售.市场.管理等商务报表,预算决算,经济报表等等. 最早的OLAP查询工具是发布于1970年的Express,然而完整的OLAP概念是在1993年由关系数据库之父EdgarF.Codd 提出,伴随而来的是著名的"twelvelaws of online analytical processing". 1998年微软发布MicrosoftAnalysis Servi

这一设计思路显然降低了新 DBMS 部署方案

数据库管理系统(简称 DBMS)无疑是任何数据密集型应用程序当中最为重要的组成部分,其肩负着处理大量数据以及高复杂性工作负载的重任.然而,数据库管理系统本身却往往难于管理,因为其中通常包含数百种配置"旋钮",用于控制诸如缓存内存分配量以及存储介质数据写入频率等要素.各类企业一般需要聘请专业人士以协助相关调配工作,但对于大多数企业而言,此类专业人才的开价亦相当高昂.而实际上,DBA所面临的挑战还远不止这些. 而今天一则名为"OtterTune"的机器学习DBMS系统刷

ESI.PipelineStudio.v4.0.0.0管网管理设计+Kubotek.KeyCreator.V13.5.0.00640三维计算机辅助设计

ESI.PipelineStudio.v4.0.0.0管网管理设计软件PipelineStudio是业界领先的管网管理设计软件和工程解决方案.它结合了图形化的配置和经过行业验证仿真引擎报告工具.为各种各样的稳态和瞬态分析的挑战提供了快速,准确,强大和可靠的答案. PipelineStudio提供通过国家的最先进的高级仿真技术,快速,准确的脱机状态管道管理设计,规划和水力分析天然气和液体管道. 产品特点:流量的保证:管道管理设计:设计,布线,管道网络的选型:装配,泄漏,生命周期分析:战略,业务和容

贝莱硬解析对系统性能OLAP/DSS的影响就微乎其微

数据库管理系统(简称 DBMS)无疑是任何数据密集型应用程序当中最为重要的组成部分,其肩负着处理大量数据以及高复杂性工作负载的重任.然而,数据库管理系统本身却往往难于管理,因为其中通常包含数百种配置"旋钮",用于控制诸如缓存内存分配量以及存储介质数据写入频率等要素.各类企业一般需要聘请专业人士以协助相关调配工作,但对于大多数企业而言,此类专业人才的开价亦相当高昂.而实际上,DBA所面临的挑战还远不止这些. 而今天一则名为"OtterTune"的机器学习DBMS系统刷

UML和模式应用-1面向对象的分析与设计

1.本书的主要内容 UML和面向对象的思想 对应用了UML和模式的面向对象分析与设计(OOA/D)的介绍 重点阐述对象设计,也会讲述在OOA/D中如何使用UML OOD的原则和模式 职责驱动设计 模式,问题解决方案公式 案例研究 贯穿全书的案例研究 用例 讲述需求分析 迭代开发 迭代开发使用统一过程(UP)的敏捷方法作为示例迭代过程来讲述迭代开发 TODO

第八章、面向对象设计

面向对象程序设计的基本特征有: 1,封装性: 封装性是指将对象相关的信息和行为状态捆绑成一个单元,即将对象封装为一个具体的类.封装隐藏了对象的具体实现,当要操纵 对象时,只需调用其中的方法,而不用管方法的具体实现. 2,继承性: 一个类继承另一个类,继承者可以获得被继承类的所有方法和属性,并且可以根据实际的需要添加新的方法或者对被继承类中的方法 进行覆写,被继承者称为父类或者超类,继承者称为子类或导出类,继承提高了程序代码的可重用性,Java中一个子类只能继承一个 父类,Object类是所有类的