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)
  –需要进行预计算,可能导致数据爆炸
  –无法支持维的动态变化
  –缺乏数据模型和数据访问的标准

                   

                                            

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

  1. SSAS中CUBE的多对多关系既可以出现在中间事实表上也可以出现在中间维度表上

    开发过SSAS中CUBE的朋友,肯定都知道维度用法中的多对多关系, 这篇文章不想详细阐述多对多关系在CUBE中的结构,详情请在网上寻找CUBE多对多关系的介绍资料. 下面是是一个典型的CUBE中多对多 ...

  2. SSAS中Cube的结构

    在SSAS(SQL Server Analysis Services)中构建Cube和编写MDX的时候,我们很容易被一些名词弄糊涂,比如:Dimension(维度),Measures Dimensio ...

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

    对Microsoft SQL Server(2008) Analysis Services(以下称SSAS) 多维数据集运行多维表达式 (MDX) 查询时,会返回这个错误消息:XXX Cube不存在, ...

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

    去年做了一个数据仓库的项目,其中涉及到了CUBE数据级权限的控制.在网上找这方面的资料,找到一个[BI] 通用数据级权限控制解决方案的实现(二):Cube中的角色设置与数据级权限控制.根据这个大牛的思 ...

  5. SSAS——基础

    一.Analysis Services Analysis Services是用于决策支持和BI解决方案的数据引擎.它提供报表和客户端中使用的分析数据. 它可在多用途数据模型中创建高性能查询结构,业务逻 ...

  6. 数据立方体(Cube)

    如上图所示,这是由三个维度构成的一个OLAP立方体,立方体中包含了满足条件的cell(子立方块)值,这些cell里面包含了要分析的数据,称之为度量值.显而易见,一组三维坐标唯一确定了一个子立方. 多位 ...

  7. [译]SSAS下玩转PowerShell(三)

    在第一篇中简单介绍了PowerShell,包含基本的一些命令,以及如何打开PowerShell,并且导航到SSAS对象.第二篇中学习了如何使用变量根据当前日期创建SSAS备份,以及如何运行MDX和XM ...

  8. SSRS 数据源访问Cube 无法创建订阅的解决方法

    SSRS Report 的数据源可以直接放问SSAS 的Cube. 当报表的数据源设置成下图: 这样设置后,report 能够正常访问 Cube 并打开Report. 但是,如果我们需要添加数据驱动的 ...

  9. MDX示例:求解中位数、四分位数(median、quartile)

    一个人力资源咨询集团通过网络爬虫采集手段将多个知名招聘网站上发布的求职和招聘等信息准实时采集到自己的库里,形成一个数据量浩大的招聘信息库,跟踪全国招聘和求职的行业.工种.职位.待遇等信息,并通过商业智 ...

随机推荐

  1. 以层的观点思考各个nginx的log位置

    问题 做代理服务器时候,自身的log.被代理的服务器的log 回答 以层的观点思考这个问题 各层的日志落在各层

  2. 常用的JS代码块收集

    /**数组去重一*/ (function (arr) { arr = arr.sort(); for (var i = 0; arr[i]; i++) { if (arr[i] === arr[i + ...

  3. 001-OSI七层模型,TCP/IP五层模型

    一.概述 OSI(Open System Interconnection)参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型. OSI/ ...

  4. Some day some time we will do

    Age has been reached the end of the beginning of the world,May be guilty in his seems to passing a l ...

  5. Linux系统通过console口连接交换机

    一.安装minicomUbuntu安装:sudo apt-get install minicom.centos安装:yum install minicom二.配置minicomUbuntu输入:sud ...

  6. google黑客语法总结

    搜索也是一门艺术 说起Google,可谓无人不知无人不晓,其强大的搜索功能,可以让你在瞬间找到你想要的一切.不过对于普通的用户而言,Google是一个强大的搜索引擎:而对于黑客而言,则可能是一款绝佳的 ...

  7. python有哪些好的学习资料或者博客?

    推荐Full Stack Python 有各种python资源汇总,从基础入门到各种框架web应用开发和部署,再到高级的ORM.Docker都有.以下是Full Stack Python 上总结的一些 ...

  8. php基础知识测试总结

    1.LAMP具体结构包括Linux系统,Apache服务器,MySQL数据库,PHP语言. WAMP具体结构包括Windows系统,Apache服务器,MySQL数据库,PHP语言. 2.B/S架构: ...

  9. PAT 天梯赛 L1-030. 一帮一 【STL】

    题目链接 https://www.patest.cn/contests/gplt/L1-030 思路 用三个 Vector 来分别存放 整个排名,以及男生的单独排名和女生的单独排名 从整个的排名 从上 ...

  10. Loadrunner之脚本篇——事务函数

    1.事务的开始和结束名称需要相同 lr_start_transaction(“transaction_name”); …//事务处理 lr_end_transaction(“transaction_n ...