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

数据仓库就是数据的仓库!用外文说叫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

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

  1. 设计和实现OLAP解决方案

    设计和实现OLAP解决方案   第一讲 简介首先,啥叫数据仓库? 数据仓库就是数据的仓库!用外文说叫Data Warehouse,简称DW. 是不是哐当倒下一片啊,要不咱换个专业点的说法? 数据仓库是 ...

  2. Apache Kylin - 大数据下的OLAP解决方案

    OLAPCube是一种典型的多维数据分析技术,Cube本身可以认为是不同维度数据组成的dataset,一个OLAP Cube 可以拥有多个维度(Dimension),以及多个事实(Factor Mea ...

  3. 实现领域驱动设计 - 使用ABP框架 - 解决方案概览

    .NET解决方案的分层 下图显示了使用ABP的 应用启动模板 创建的Visual Studio解决方案: 解决方案名称为问题跟踪,它由多个项目组成.通过考虑DDD原则以及开发和部署实践,该解决方案是分 ...

  4. 苏宁OLAP架构设计

    一. 功能综述 OLAP引擎为存储和计算二合一的引擎,自身内部涵盖了对数据的管理以及提供查询能力.底层数据完全规划在引擎内部,外部系统不允许直接操作底层数据,而是需要通过暴露出来的接口来读写引擎内部数 ...

  5. 轻量级OLAP(二):Hive + Elasticsearch

    1. 引言 在做OLAP数据分析时,常常会遇到过滤分析需求,比如:除去只有性别.常驻地标签的用户,计算广告媒体上的覆盖UV.OLAP解决方案Kylin不支持复杂数据类型(array.struct.ma ...

  6. Hadoop专业解决方案-第12章 为Hadoop应用构建企业级的安全解决方案

    一.前言: 非常感谢Hadoop专业解决方案群:313702010,兄弟们的大力支持,在此说一声辛苦了,春节期间,项目进度有所延迟,不过元宵节以后大家已经步入正轨, 目前第12章 为Hadoop应用构 ...

  7. 操作数据库系统(OLTP)和联机分析处理系统(OLAP)的区别

    联机操作数据库系统的主要任务是执行联机事务和查询处理.这种系统称为联机事务处理(OnLine Transaction Processing,OLTP) 系统.它们涵盖了单位的大部分日常操作,如购物,库 ...

  8. Slithice 分布式架构设计

    项目原因: 参与过各种 分布式项目,有 Socket,Remoting,WCF,当然还有最常用的可以跨平台的 WebService. 分布式编码的时间浪费: 但是,无一例外的,开发分布式程序的开发遵循 ...

  9. 开放源代码的设计层面框架Spring——day01

    spring第一天     一.Spring概述         1.1spring概述             1.1.1spring介绍                 Spring是分层的Jav ...

随机推荐

  1. Luogu P1084 疫情控制 | 二分答案 贪心

    题目链接 观察题目,答案明显具有单调性. 因为如果用$x$小时能够控制疫情,那么用$(x+1)$小时也一定能控制疫情. 由此想到二分答案,将问题转换为判断用$x$小时是否能控制疫情. 对于那些在$x$ ...

  2. Serverless 工程实践|自建 Apache OpenWhisk 平台

    作者 | 刘宇(江昱) 前言:OpenWhisk 是一个开源.无服务器的云平台,可以在运行时容器中通过执行扩展的代码响应各种事件,而无须用户关心相关的基础设施架构. OpenWhisk 简介 Open ...

  3. PWN学习之整数溢出

    目录 PWN学习之整数溢出 整数溢出 溢出和回绕 漏洞多发函数 整数溢出例子 PWN学习之整数溢出 整数溢出 如果一个整数用来计算一些敏感数值,如缓冲区大小或数值索引,就会产生潜在的危险.通常情况下, ...

  4. [WPF] 使用三种方式实现弧形进度条

    1. 需求 前天看到有人问弧形进度条怎么做,我模仿了一下,成果如下图所示: 当时我第一反应是可以用 Microsoft.Toolkit.Uwp.UI.Controls 里的 RadialGauge 实 ...

  5. DeWeb第1个通用化模块:登录模块,仅需要修改一个配置文件即可实现登录功能

    演示: https://delphibbs.com/login.dw 开发环境和源代码 https://gitee.com/xamh/dewebsdk 效果图: 配置方法: 在Runtime目录中放一 ...

  6. gitbook的安装

    [前端工具]nodejs+npm+vue 安装 安装 npm install gitbook-cli -g gitbook命令: gitbook init //初始化目录文件 gitbook help ...

  7. 详解calc()函数功能

    calc()对大家来说,或许很陌生,不太会相信calc()是css中的部分.因为看其外表像个函数,既然是函数为何又出现在CSS中呢?这一点也让我百思不得其解,今天有一同事告诉我,说CSS3中有一个属性 ...

  8. 【JAVA】笔记(6)--- toString方法;equals方法;finalize方法;package与import;内部类;

    toString: 1.每创建一个类时,都要重写 toString 方法,这是敲代码的基本素养: 2.重写规则:简单明了: 3.String 类中也有toString方法(SUN公司写的): equa ...

  9. c++学习笔记1(引用)

    引用 格式:类型名&引用名=某变量名: 概念 实例:编写交换整型变量的函数对比 不用引用 实机操作 使用引用 实机操作 实例2:用作函数的返回值 可对函数返回值赋值 常引用 使用格式,在引用前 ...

  10. Django 小实例S1 简易学生选课管理系统 9 创建课程模型(model)

    Django 小实例S1 简易学生选课管理系统 第9节--创建课程模型(model) 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 对于课程模块, ...