SSAS——基础--cube
一、Analysis Services
Analysis Services是用于决策支持和BI解决方案的数据引擎。它提供报表和客户端中使用的分析数据。
它可在多用途数据模型中创建高性能查询结构,业务逻辑和KPI(企业关键绩效指标),该数据模型可由任何支持Analysis Services作为数据源的客户端程序访问。
多用途数据模型的创建:使用SQL Server Data Tools,并选择则表格或者多维和数据挖掘项目模板。
多用途数据模型的数据填充:通常是数据仓库
多为数据模型的使用:将它部署在特定服务器模式下运行数据库的Analysis Services实例。并使数据对应用程序连接的授权用户可用。
Analysis Services实例:
- 表格实例,运行表格模型
- 多维和数据挖掘实例,运行OLAP多维和数据挖掘模型(默认)
- PowerPivot for SharePoint,在SharePoint中运行PowerPivot或Excel数据模型。
二、SSAS体系结构
SSAS使用服务器组件和客户端组件为商业智能程序提供联机分析处理(OLAP)和数据挖掘功能。
- 服务器组件:SSAS的服务器组件是应用程序msmdsrv.exe,它作为Microsoft Windows服务来实现。支持来自一个计算机的多个实例,每个Analysis Services实例作为单独的Windows服务实例来实现。该应用程序包含很多组件其中包括XMLA监听组件,查询处理器组件等。
- 客户端组件:使用XMLA(XML for Analysis)与Analysis Services进行通信。XMLA基于SOAP的协议,用于发出命令和接收响应。查询语言:SQL,MDX(一种用于分析的行业标准查询语言),DMX(面向数据挖掘行业的查询语言)
- OLAP的支持:允许用户设计、创建和管理由多个数据源聚合的数据的多维结构。多维分析是OLAP的核心。
- 数据挖掘功能:允许用户设计、创建和处理数据挖掘模型。
三、多维数据分析的基本概念:
观察变量:如数字1000
度量值:没有上下文的数字是数据而不是信息,在寻找数字信息的过程中,首先要做的就是确定数据的度量值,如销售量、销售额等。通过增加标签,数字由数据变成了信息,这个标签就是元数据,将数据转换为信息的方式之一就是增加元数据。 度量值所在的表是事实数据表,常规多维数据集结构中只能有一个事实数据表。
维:人们观察客观世界的角度,是一种高层次的类型划分。维包含着层次关系,可以把多项重要的属性作为多个维。如时间维,产品维,模型维等。时间维,产品的销售量随着时间的变化。包含维度信息的表叫做维度表。
维度成员:维的一个取值称为维成员。如时间维上的某年某月某日。维成员不一定要在每个维层次上取值,如某年某月。
层次结构:维度成员的集合以及这些成员的相对位置。如时间维的年月日三个层次。地理维的州 国家 城市 区 街道 门牌号。
多维数据集(Cube):是一个数据集合,由数据仓库的子集构造。
维度表:包含某维度信息的表。维度表由主键和维属性组成,维属性是维度表的列属性;产品维度表:Prod_id, Product_Name, Category, Color, Size, Price 时间维度表:TimeKey, Season, Year, Month, Date。维度表的主键是整型值,为了节省事实表的存储空间。
事实表:包含度量值的表。如销售事实表:Prod_id(引用产品维度表), TimeKey(引用时间维度表), SalesAmount(销售总量,以货币计), Unit(销售量)
四、多维数据模型与结构
目前主流的数据仓库建模分为两种,一种是实体关系建模(Entity-Relationship Modeling)和维度建模(Dimension Modeling)。这里讨论维度建模,这一部分是数据仓库的核心,模型的优劣至关重要。
1、概念模型
概念模型也就是通常所说的需求分析。即在与用户交流的过程中,确定数据仓库索要访问的信息,这些信息包括当前、将来以及与历史用关的数据。
概念模型的目标是建立面向主题的信息包图。由于超立方体在表现上缺乏直观性,尤其当维度超过三维以后,数据的采集和表示都比较困难。因此信息包图的目标也就是在平面上展开超立方体,使用二维表格表现多维特征。利用信息包图设计概念模型需要确定三大内容,以产品的销售情况分析和预测主题分析为例:
a)确定维度
获取对电子商城中销售数据的多维特性分析,确定影响销售的维度:这里的时间、商品、商店、客户
b)确定类别
对每个维度进行分析,确定它与类别之间的传递和映射关系。如时间有年、季度、月、周、日等。商品有大类、小类、具体商品等。
c)确定指标
确定用户需要的指标体系,指标是用户最关系的信息。以销售情况作为依据确定相关的销售指标,如本期销售量,本期销售额,累计销售量,累计销售额等。
2、逻辑模型
采用星型图建模技术可为数据仓库建立完善的逻辑模型。星型图用来描述数据仓库需求,因此也包括三个逻辑实体,维度、指标和详细类别。由信息包图可以知道,一个维度内的每个单元式一个类别,代表该维度内的一个详细的层次。
a)星型模式
星型模式是一种多维的数据模型,它由一个事实表和逻辑上围绕这个事实表的维表组成。事实表是星型模式的核心,用于存放大量业务性质的事实数据,事实表中包含了度量属性和指向周围维表的外码,事实表中的一个事实指向每个维表中的一个元组。事实表中存放的大量数据是同主题密切相关的、用户最关心的、对象的度量数据。用户依赖于维度表中的维度属性,对事实表中的数据进行查询、分析进而得到支持决策的数据。
b)雪花模式
雪花模式是星型模式的进一步扩展和规范化,也就是将与事实表关联的维表分为直接关联的主维表和与主维表关联的次维表。雪花模式比星型模式增加了层次结构,体现了维的不同粒度的划分。
c)星系模式
当多个主题之间有公共的维时候,可以通过共享维表,把事实表连接起来。
雪花模式与星型模式的优缺点比较:
从数据格式来看:雪花型使用规范化数据,星型使用反规范化数据。
从加载内容来看,星形模型加载维度表,不需要在维度之间添加附属模型;雪花模型加载数据集市。
从ETL复杂程度来看:星形模型ETL就相对简单,而且可以实现高度的并行化。
从查询性能角度来看,在OLTP-DW环节,由于雪花型要做多个表联接,性能会低于星型架构;但从DW-OLAP环节,由于雪花型架构更有利于度量值的聚合,因此性能要高于星型架构。
从模型复杂度来看,星型架构更简单。
从层次概念来看,雪花型架构更加贴近OLTP系统的结构,比较符合业务逻辑,层次比较清晰。
从存储空间角度来看,雪花型架构具有关系数据模型的所有优点,不会产生冗余数据,而相比之下星型架构会产生数据冗余。
一般建议使用星型架构。因为我们在实际项目中,往往最关注的是查询性能问题,至于磁盘空间一般都不是问题。 当然,在维度表数据量极大,需要节省存储空间的情况下,或者是业务逻辑比较复杂、必须要体现清晰的层次概念情况下,可以使用雪花型维度。
五、OLAP以及分析服务
OLAP:OLAP是一种技术,它能够使分析人员快速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。根据数据存储方式不同,olap可以分为rolap,molap,holap
ROLAP:关系数据库来存储数据。
优点:
MOLAP:多维数据库来存储数据
优点:
SSAS——基础--cube的更多相关文章
- SSAS中CUBE的多对多关系既可以出现在中间事实表上也可以出现在中间维度表上
开发过SSAS中CUBE的朋友,肯定都知道维度用法中的多对多关系, 这篇文章不想详细阐述多对多关系在CUBE中的结构,详情请在网上寻找CUBE多对多关系的介绍资料. 下面是是一个典型的CUBE中多对多 ...
- SSAS中Cube的结构
在SSAS(SQL Server Analysis Services)中构建Cube和编写MDX的时候,我们很容易被一些名词弄糊涂,比如:Dimension(维度),Measures Dimensio ...
- SSAS数据集Cube不存在或者尚未处理
对Microsoft SQL Server(2008) Analysis Services(以下称SSAS) 多维数据集运行多维表达式 (MDX) 查询时,会返回这个错误消息:XXX Cube不存在, ...
- SSAS中CUBE行权限数据级权限控制
去年做了一个数据仓库的项目,其中涉及到了CUBE数据级权限的控制.在网上找这方面的资料,找到一个[BI] 通用数据级权限控制解决方案的实现(二):Cube中的角色设置与数据级权限控制.根据这个大牛的思 ...
- SSAS——基础
一.Analysis Services Analysis Services是用于决策支持和BI解决方案的数据引擎.它提供报表和客户端中使用的分析数据. 它可在多用途数据模型中创建高性能查询结构,业务逻 ...
- 数据立方体(Cube)
如上图所示,这是由三个维度构成的一个OLAP立方体,立方体中包含了满足条件的cell(子立方块)值,这些cell里面包含了要分析的数据,称之为度量值.显而易见,一组三维坐标唯一确定了一个子立方. 多位 ...
- [译]SSAS下玩转PowerShell(三)
在第一篇中简单介绍了PowerShell,包含基本的一些命令,以及如何打开PowerShell,并且导航到SSAS对象.第二篇中学习了如何使用变量根据当前日期创建SSAS备份,以及如何运行MDX和XM ...
- SSRS 数据源访问Cube 无法创建订阅的解决方法
SSRS Report 的数据源可以直接放问SSAS 的Cube. 当报表的数据源设置成下图: 这样设置后,report 能够正常访问 Cube 并打开Report. 但是,如果我们需要添加数据驱动的 ...
- MDX示例:求解中位数、四分位数(median、quartile)
一个人力资源咨询集团通过网络爬虫采集手段将多个知名招聘网站上发布的求职和招聘等信息准实时采集到自己的库里,形成一个数据量浩大的招聘信息库,跟踪全国招聘和求职的行业.工种.职位.待遇等信息,并通过商业智 ...
随机推荐
- JS 插件 fastclick.js 解决手机端click点击延迟
FastClick 是一个简单,易于使用的JS库用于消除在移动浏览器上触发click事件与一个物理Tap(敲击)之间的300延迟. 对于非移动浏览器不启作用,禁用缩放标签. <meta name ...
- qt sql 模块有哪些类?
Class Description translate.google QSqlDatabase Handles a connection to a database 处理与数据库的连接 QSqlDri ...
- python面试题(五)
1 谈谈你对面向对象的理解? 面向对象的编程---object oriented programming,简称:OOP,是一种编程的思想.OOP把对象当成一个程序的基本单元,一个对象包含了数据和操作数 ...
- python cookbook第三版学习笔记二十:可自定义属性的装饰器
在开始本节之前,首先介绍下偏函数partial.首先借助help来看下partial的定义 首先来说下第一行解释的意思: partial 一共有三个部分: (1)第一部分也就是第一个参数,是一个函数, ...
- 0403-服务注册与发现-客户端负载均衡-Ribbon的基本使用
一.概述 问题1.上一篇文章已说明如何注册微服务,但是调用方如何调用,以及如何防止硬编码.即电影微服务调用用户微服务 问题2.用户微服务多个节点,调用服务方如何负载均衡 二.实现负载均衡方式 2.1. ...
- Django CSRF 原理分析
原文链接: https://blog.csdn.net/u011715678/article/details/48752873 参考链接:https://blog.csdn.net/clark_fit ...
- windows下python调用c文件流程
1.新建fun.c文件和fun.h文件 #include <stdio.h> #include <stdlib.h> #include <string.h> int ...
- Django 之基础续
1.路由系统之动态路由 前言:还记得之前的分页效果,这个如何实现呢?答案就是动态路由. url(r'^detail/(\d+)/$', views.detail), url(r'^detail2/(\ ...
- iOS 快速遍历 效率分析 for loop for in enumerateBlock 适用条件
test1 简单遍历 结论: 当数组数据量很小 时候 for loop 和 for in 效率不相上下,随着数据量增长for in 快速枚举的优势 明显 如果需要知道 索引可用 enumrateBlo ...
- c# 接口(interface)与接口应用
using System; using System.Collections.Generic; using System.Linq; using System.Text; //接口(interface ...