设计和实现OLAP解决方案
设计和实现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://dev-club.esnai.com/club/bbs/elist.asp?page=6&nofolder=&path=&boardid=23
设计和实现OLAP解决方案的更多相关文章
- 设计和实现OLAP解决方案 [转]
第一讲 简介首先,啥叫数据仓库? 数据仓库就是数据的仓库!用外文说叫Data Warehouse,简称DW. 是不是哐当倒下一片啊,要不咱换个专业点的说法? 数据仓库是一个面向主题的.集成的.相对稳定 ...
- Apache Kylin - 大数据下的OLAP解决方案
OLAPCube是一种典型的多维数据分析技术,Cube本身可以认为是不同维度数据组成的dataset,一个OLAP Cube 可以拥有多个维度(Dimension),以及多个事实(Factor Mea ...
- 实现领域驱动设计 - 使用ABP框架 - 解决方案概览
.NET解决方案的分层 下图显示了使用ABP的 应用启动模板 创建的Visual Studio解决方案: 解决方案名称为问题跟踪,它由多个项目组成.通过考虑DDD原则以及开发和部署实践,该解决方案是分 ...
- 苏宁OLAP架构设计
一. 功能综述 OLAP引擎为存储和计算二合一的引擎,自身内部涵盖了对数据的管理以及提供查询能力.底层数据完全规划在引擎内部,外部系统不允许直接操作底层数据,而是需要通过暴露出来的接口来读写引擎内部数 ...
- 轻量级OLAP(二):Hive + Elasticsearch
1. 引言 在做OLAP数据分析时,常常会遇到过滤分析需求,比如:除去只有性别.常驻地标签的用户,计算广告媒体上的覆盖UV.OLAP解决方案Kylin不支持复杂数据类型(array.struct.ma ...
- Hadoop专业解决方案-第12章 为Hadoop应用构建企业级的安全解决方案
一.前言: 非常感谢Hadoop专业解决方案群:313702010,兄弟们的大力支持,在此说一声辛苦了,春节期间,项目进度有所延迟,不过元宵节以后大家已经步入正轨, 目前第12章 为Hadoop应用构 ...
- 操作数据库系统(OLTP)和联机分析处理系统(OLAP)的区别
联机操作数据库系统的主要任务是执行联机事务和查询处理.这种系统称为联机事务处理(OnLine Transaction Processing,OLTP) 系统.它们涵盖了单位的大部分日常操作,如购物,库 ...
- Slithice 分布式架构设计
项目原因: 参与过各种 分布式项目,有 Socket,Remoting,WCF,当然还有最常用的可以跨平台的 WebService. 分布式编码的时间浪费: 但是,无一例外的,开发分布式程序的开发遵循 ...
- 开放源代码的设计层面框架Spring——day01
spring第一天 一.Spring概述 1.1spring概述 1.1.1spring介绍 Spring是分层的Jav ...
随机推荐
- 查看运行的KVM的虚机
[root@ok Desktop]# cat demo.py #!/usr/bin/python import libvirt conn = libvirt.open("qemu:///sy ...
- C++ 中 volatile 的使用
一.作用 volatile的作用是: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值. 简单地说就是防止编译器对代码进行优化.比如如下程序:XBYTE[2]=0x55;XBY ...
- poj 2559 单调栈 ***
给出一系列的1*h的矩形,求矩形的最大面积. 如图: 题解链接:点我 #include <iostream> #include <cstdio> using namespace ...
- Codeforces Round #350 (Div. 2) F. Restore a Number 模拟构造题
F. Restore a Number Vasya decided to pass a very large integer n to Kate. First, he wrote that num ...
- Tomcat中的webapps中的web应用的文件结构
可仿造Tomcat中的webapps下的已有web应用的例子 具体文件结构如下:
- C. Graph and String
二分图染色 b点跟除自身外所有的点连接,共n-1个,首先把连接n-1个的点全部设为b点,其它点任意一点设为a,与a相连的都是a点,剩余为c点.最后验证是否成立. 验证条件为,所有连接的点之间的差值的绝 ...
- HTTP基础04--web服务器
单台虚拟主机实现多个域名 由于虚拟服务器的功能,一台HTTP服务器可以搭建多个Web站点: 在互联网上,域名通过 DNS 服务映射到 IP 地址(域名解析)之后访问目标网站.当请求发送到服务器时,已经 ...
- DFS HDOJ 2181 哈密顿绕行世界问题
题目传送门 题意:中文题面 分析:直接排完序后DFS.这样的题以后不应该再写题解的. #include <bits/stdc++.h> using namespace std; vecto ...
- Assets/Sciprts/GameSciprt.js(97,46): BCE0044: expecting :, found ','.
function BuildDeck() { var totalRobots:int=4; var card:Object; var i:int; for(i=0;i<totalRobots;i ...
- POJ 2763 (树链剖分+边修改+边查询)
题目链接:http://poj.org/problem?id=2763 题目大意:某人初始在s点.有q次移动,每次移动沿着树上一条链,每经过一条边有一定花费,这个花费可以任意修改.问每次移动的花费. ...