设计和实现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
设计和实现OLAP解决方案 [转]的更多相关文章
- 设计和实现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 ...
随机推荐
- 面试官问我JVM内存结构,我真的是
面试官:今天来聊聊JVM的内存结构吧? 候选者:嗯,好的 候选者:前几次面试的时候也提到了:class文件会被类加载器装载至JVM中,并且JVM会负责程序「运行时」的「内存管理」 候选者:而JVM的内 ...
- Edge屏蔽CSDN (必应)
国内的中文论坛都一样的烂(博客园除外),CSDN和微博只是烂的方式不一样.当你想找解决方法的时候却发现搜索出来的结果是同一篇文章被n个人投了n遍,查询内容不仅不能解决问题,还浪费了大量时间.这几天偶尔 ...
- [python]RobotFramework自定义库实现UI自动化
1.安装教程 环境搭建不多说,网上资料一大堆,可参考https://www.cnblogs.com/puresoul/p/3854963.html,写的比较详细,值得推荐.目前python3是不支持r ...
- Xshell Error Report,Program has stopped working
xftp和xshell突然都无法运行并报错如图 图中的意思是,xshell有错误,官方想收集错误.可是也不能给你发送了,还这样啊. 解决办法 1.卸载Xshell和Xftp,重新安装. 参考:http ...
- 从0到1使用Kubernetes系列(七):网络
本文是从 0 到 1 使用 Kubernetes 系列第七篇,上一篇<从 0 到 1 使用 Kubernetes 系列(六):数据持久化实战> 介绍了 Kubernetes 中的几种常用储 ...
- 什么是齐博x1标签
X系列的标签跟V系列的标签区别还是很大的.在V系列的时候,只有一种很简单的标签比如$label[XXXX]以前的标签相对现在的来说太简单的点,所以在功能上也比较受限.X系列目前有几下几种标签 {qb: ...
- (三)MySQL数据管理
3.1 外键(了解即可) 方式一:在创建表的时候,增加约束(麻烦,比较复杂) CREATE TABLE IF NOT EXISTS `student`( `id` INT(4) NOT NULL AU ...
- Linux基础三:用户和组
三.用户和组 1.概念 (1).用户概念: 用户是用来运行某一些进程.拥有某一些文件或目录. 在Linux里面,用户分成三大类:root用户.系统用户.普通用户. 用户是用UID来唯一标识身份的,且r ...
- 说透 Docker:基础
既然要学习 K8S,相信各位读者都已经使用过 Docker 了,Docker 的入门是比较容易的,但 Docker 的网络和存储.虚拟化是相当复杂的,Docker 的技术点比较多,在本章中将会深入介绍 ...
- silky微服务框架的服务治理介绍
目录 服务治理的概念 服务注册与发现 负载均衡 超时 故障转移(失败重试) 熔断保护(断路器) 限流 RPC限流 HTTP限流 1. 添加配置 2. 注册服务 3.启用 AspNetCoreRateL ...