SSAS——基础--cube

SSAS——基础

一、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:关系数据库来存储数据。

  优点:

      –没有大小限制

   –现有的关系数据库的技术可以沿用.

   –可以通过SQL实现详细数据与概要数据的存储

   –现有关系型数据库已经对OLAP做了很多优化,包括并行存储、并行查询、并行数据管理、基于成本的查询优化、位图索引、SQL 的OLAP扩展(cube,rollup)等大大提高ROALP的速度

  缺点:

  –一般响应速度较慢

  –不支持有关预计算的读写操作

  –SQL无法完成部分计算

    ?无法完成多行的计算

    ?无法完成维之间的计算

  MOLAP:多维数据库来存储数据

  优点: 

  –性能好、响应速度快

  –专为OLAP所设计

  –支持高性能的决策支持计算

    ?复杂的跨维计算

    ?多用户的读写操作

    ?行级的计算

  缺点:

  –增加系统复杂度,增加系统培训与维护费用

  –受操作系统平台中文件大小的限制,难以达到TB 级(只能10~20G)

  –需要进行预计算,可能导致数据爆炸

  –无法支持维的动态变化

  –缺乏数据模型和数据访问的标准

                   

                                            

时间: 2024-10-01 14:10:34

SSAS——基础--cube的相关文章

SSAS数据集Cube不存在或者尚未处理

对Microsoft SQL Server(2008) Analysis Services(以下称SSAS) 多维数据集运行多维表达式 (MDX) 查询时,会返回这个错误消息:XXX Cube不存在,或者尚未处理.其中XXX表示多维度数据集的名称.因调用Cube数据集数据至少得有Cube读取权限,导致该问题发生的原因就是无Cube数据集的权限. 以下为我在项目中对应问题的截图: 对于处理此类问题,我们首先需要查看Microsoft Analysis Server(以下称AS)对应的Cube下公共

SSAS中CUBE行权限数据级权限控制

原文:SSAS中CUBE行权限数据级权限控制 去年做了一个数据仓库的项目,其中涉及到了CUBE数据级权限的控制.在网上找这方面的资料,找到一个[BI] 通用数据级权限控制解决方案的实现(二):Cube中的角色设置与数据级权限控制.根据这个大牛的思路,做完之后发现有几个问题: 1. 传递给CUBE的用户必须是域用户或者数据库服务器WINDOWS用户.如果BI系统不是用的AD域认证而是传统的FORM认证,那么,BI里的用户需要对应一个WINDOWS用户. 2. 另外的WEB程序里保存对cube的角色

数据立方体(Cube)

如上图所示,这是由三个维度构成的一个OLAP立方体,立方体中包含了满足条件的cell(子立方块)值,这些cell里面包含了要分析的数据,称之为度量值.显而易见,一组三维坐标唯一确定了一个子立方. 多位模型的基本概念介绍: ? 立方体:由维度构建出来的多维空间,包含了所有要分析的基础数据,所有的聚合数据操作都在立方体上进行. ? 维度:就是观察数据的一种角度.在这个例子中,路线,源,时间都是维度, ? 这三个维度构成了一个立方体空间.维度可以理解为立方体的一个轴.要注意的是有一个特殊的维度,即度量

SSAS下玩转PowerShell(三)

 在第一篇中简单介绍了PowerShell,包含基本的一些命令,以及如何打开PowerShell,并且导航到SSAS对象.第二篇中学习了如何使用变量根据当前日期创建SSAS备份,以及如何运行MDX和XMLA脚本. 原文地址: http://www.mssqltips.com/sqlservertip/2980/using-powershell-for-ssas-to-check-service-status-and-database-availability/ 在这一篇中,主要介绍以下几个话

[译]SSAS下玩转PowerShell(三)

在第一篇中简单介绍了PowerShell,包含基本的一些命令,以及如何打开PowerShell,并且导航到SSAS对象.第二篇中学习了如何使用变量根据当前日期创建SSAS备份,以及如何运行MDX和XMLA脚本. 原文地址: http://www.mssqltips.com/sqlservertip/2980/using-powershell-for-ssas-to-check-service-status-and-database-availability/ 在这一篇中,主要介绍以下几个话题:

java web 开发三剑客 -------电子书

Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知Internet的目的是让各个net交互.所以,Internet实质上是将世界上各个国家.各个网络运营商的多个网络相互连接构成的一个全球范围内的统一网,使各个网络之间能够相互到达.各个国家和运营商构建网络采用的底层技术和实现可能各不相同,但只要采用统一的上层协议(TCP/IP)就可以通过Internet

PLSQL_基础系列2_分组函数GROUP BY / ROLLUP / CUBE

2014-11-30 BaoXinjian 一.摘要 ROLLUP 运算符生成的结果集类似于 CUBE 运算符生成的结果集. 1. 下面是 CUBE 和 ROLLUP 之间的具体区别: CUBE 生成的结果集显示了所选列中值的所有组合的聚合. ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合. 2. ROLLUP 优点: (1). ROLLUP 返回单个结果集,而 COMPUTE BY 返回多个结果集,而多个结果集会增加应用程序代码的复杂性. (2). ROLLUP 可以在服务器游

SSAS 聚合设计提升CUBE的查询性能(转载)

Problem What exactly are SQL Server Analysis Services (SSAS) Aggregations and how exactly can I review and use them? Solution Aggregations in SSAS offer a wonderful opportunity to improve query performance and calculation times by "pre aggregating&qu

How to automatic process SSAS cube using SQL Server agent job

How to automatic process SSAS cube using SQL Server agent job After connecting to the Analysis Server, right click on the Cube and select Process When the process window opens, click the dropdown by Script and select Script Action to Clipboard. Then