OLAP工作的基本概念(结合个人工作)
OLTP和OLAP
OLTP系统::执行联机事务和查询处理。一般超市进销存系统,功能:注册,记账,库存和销售记录等等,
OLAP系统:数据分析与决策服务,组织不同格式数据,满足不同用户需求。
区别:
面向性。OLTP面向顾客,就是操作员,如超市收银员,银行柜台人员。OLAP面向市场,用于数据分析,分析人员包括数据分析员,做出决策的业务经理,或者策略制定部分。
数据内容:OLTP当前数据。OLAP历史数据的汇总与聚集。
数据库设计:OLTP用ER模型和面向应用数据库。OLAP 用星型或雪花模型,面向主题数据库设计。
还有访问模式:操作事务与只读的分析计算的区别。
等等
多维数据模型:
数据立方体cube:
给定维度的每个子集产生一个cuboid(称为方体)。这样可以在不同粒度上的汇总级别或分组(group by),来显示数据,整体上方体的格成为cube。
最低层汇总的方体称为基本方体(basecuboid)。出现某一个维度上的汇总后,则为非基本方体。
汇总到最高层的数据称为顶点方体(apexcuboid),如0-d方体,that’s to say,所有维度汇总到一起只剩一个cuboid,不能再汇总了。
顶点方体是最高泛化的方体。基本方体是最低特殊化的方体。
粗细粒度是不同程度上的汇总,涉及操作:
上卷(roll up),供应商称之为上钻drillup,沿着维度的概念分层向上
下钻(drill down)沿着维度的概念分层向下,需找更细粒度的数据。
切片:固定某一维度的取值,抽取这一维度下的子集。
切块:由多个维度上选择多个取值,抽取其所映射的子立方体。
旋转rotate: 也叫pivot数轴变换,简单说,二维表中的行列转置。到三维以上复杂,不同数轴之间的位置变换。说的高大上叫数据的视图角度转变
概念分层:低层概念(如城市)映射到更高的层次概念(如国家)。从低到高叫泛化(generalize),从高到低叫特殊化(specialize)。
模式分层(schema hierarchy)概念分层为数据库模式中属性的全序或偏序。
集合分组分层(set-grouping hierarchy)给定维度的属性值的离散化或分组。如年龄age属性离散化为young、mid、old三个子集,分组group by sex的男女子集。
数据立方体的实现:
使用数据仓库的模型是多维模型,目前经常的有:
星型模型:一个大而全,且无冗余的事实表(fact);以及不同分析维度上的维度表(dimension)。维度表围绕事实表,通过每个维度自身的dimension key(所有可能范围内的取值)关联。
雪花模型:星型模型的进一步细化,即将其中包含多个值的维度表进行规范化的(就是将维度表包含的某个值提取出来,作为新的dimension表),以便减少冗余。
这样把数据进一步分解到附加表中,易于维护,省空间(防止维度灾难),但查询时需要更多关联操作,降低时效性。
事实星座模型(fact constellation)or 星系模式(galaxy schema):多个fact tableshare all dimesioms(共享维度表)。
比如我的设计的data warehouse。Workbench
Cube定义
Dimension定义
一般的data warehouse 都是用fact constellation。
指标Index
度量measure
维度灾难(curse of dimensionality),当维度过多(特征空间非常复杂),那么维度之间的关联计算就变得非常多,而维度概念分层会加重灾难。反应在cube中,就是不同维度的计算就会产生巨大的数据,就是预计算cube中所有的方体(子cube),存储空间是爆炸似增长。N维会有2n个子cube,加上概念分层Li,则方体总数
预计算:1不物化(no materialization)2全物化(full materialization)3部分物化(partial materialization)
OLAP工作的基本概念(结合个人工作)的更多相关文章
- 如何把一个excel工作薄中N个工作表复制到另一个工作薄中
一般遇到标题这样的情况,许多人可能会一个一个的复制粘贴,其实完全不必那么麻烦. 你可以按以下步骤来操作: 第一步:打开所有要操作的excel工作薄\n 第二步:按住Shift键,选择所有要复制的工作表 ...
- View的工作原理(一) 总览View的工作流程
View的工作原理(一) 总览View的工作流程 学习自 <Android开发艺术探索> 简书博主-丶蓝天白云梦 Overview 从本章开始,开始学习View的工作原理,包括View的 ...
- Worker Thread等到工作来,来了就工作
Worker是“工人”的意思,worker thread pattern中,工人线程(worker thread)会一次抓一件工作来处理,当没有工作可做时,工人线程会停下来等待心得工作过来. Work ...
- 怎么拆分一个Excel工作簿中的多个工作表?
打开需要编辑的Excel文档.如图所示,工作簿下方有很多工作表.现在需要将这些工作表单独拆分开成一个个工作簿. 右键任意一个工作表标签,在弹出的下拉列表中选择查看代码.即弹出代码窗口.如下图所示. ...
- Android WorkManager工作约束,延迟与查询工作
WorkManager工作约束,延迟与查询工作 本文可能会混用"工作"与"任务"这两个词. 本文例子使用Kotlin 准备一个工作类(任务)UploadWork ...
- Excel-同个工作簿中,多个工作表中有格式一致的表格,做汇总透视合并信息
12.同个工作簿中,多个工作表中有格式一致的表格,做汇总透视合并信息 在工作簿中新建一个工作表-汇总表->按Alt+D+P调出数据透视表和数据透视图向导->选择"多重合并计算数据 ...
- AJAX 概念 优势 发展前景 工作原理 底层技术 状态 缺点 框架
1. 概念 Ajax asynchronous JavaScript and XML , 异步js和xml. 这种解释已经过时了, 现在ajax就是, 允许浏览器和服务器通信, 而无需刷新当前页面的技 ...
- GIT团队合作探讨之一-保持工作同步的概念和实践
感谢英文原文作者,这是我看到的关于git协同工作写的最清晰简洁的文章了: https://www.atlassian.com/git/tutorials/syncing/git-push SVN使用一 ...
- Storm概念讲解和工作原理介绍
Strom的结构 Storm与传统关系型数据库 传统关系型数据库是先存后计算,而storm则是先算后存,甚至不存 传统关系型数据库很难部署实时计算,只能部署定时任务统计分析窗口数据 ...
随机推荐
- JS区分中英文字符的两种方法: 正则和charCodeAt()方法
1.正则regExpForm.onblur=function(){ entryVal=this.value; entryLen=entryVal.length; cnChar=entryVal.mat ...
- three.js 3D 动画场景
Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景,包括了摄影机.光影.材质等各种对象.使用它它能让 WebGL 变得更加简单. 下面用Three.js渲染一个物体360 ...
- Logistic Regression 算法向量化实现及心得
Author: 相忠良(Zhong-Liang Xiang) Email: ugoood@163.com Date: Sep. 23st, 2017 根据 Andrew Ng 老师的深度学习课程课后作 ...
- include和require的区别比较
require 的使用方法如 require("MyRequireFile.php"); .这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require ...
- discuz全新安装升级,导入旧数据过程,顺便gbk转utf8
由于discuz官方已经不更新了,现在又只有现成的utf8版本,没有gbk版本.我们原来使用的是gbk编码的,最近想改版,顺便升级一下,就索性把gbk也换成utf8吧,这样以后也方便,国际化嘛! 第一 ...
- 关于ubuntu14.04LTS 64位 播放优酷视频
起因:chrome无法播放优酷视频,然后换firefox发现居然没有装flash 插件. 解释:关于chrome在网上看到了不少说法,说chrome新版本的不支持adobe flash之类的,但是这些 ...
- dephi FillChar 的几种写法
//在 delphi 新版中, char 已经是双字节了.故应该重新自己写一个函数,取名为 FillByte ,才无歧义. procedure TForm1.Button2Click(Sender: ...
- acm几何
fzu 2231,N个点求构成的平行四边行个数. 题意简重点在优化上 #include <cstdio> #include <iostream> #include <cs ...
- 自己创建一个android studio在线依赖compile
我正参加2016CSDN博客之星评选麻烦帮下 奖品我随机送给投票者(写一个随机数抽取) http://blog.csdn.net/vote/candidate.html?username=qfanmi ...
- 微信小程序基础之常用控件text、icon、progress、button、navigator
今天展示一下基础控件的学习开发,希望对大家有所帮助,转载请说明~ 首先延续之前的首页界面展示,几个跳转navigator的使用,然后是各功能模块的功能使用 一.text展示 使用按钮,进行文字的添加与 ...