上一篇我们已经完成了数据源的准备工作,现在我们就开始动手,创建第一个多维数据集(Cube)。

文章提纲

  • 使用多维数据集向导创建多维数据集
  • 总结Cube设计器简介
  • 维度细化
  • 总结

一、使用向导创建多维数据集

在Analysis Services中,可以通过3种方法构建多维数据集:自上而下,自下而上或者基于一个空多维数据集。

一般我们从现有的关系数据库自下而上构建。

在自下而上方式中,需要一个DSV作为多维数据集的构建基础。

AS中的多维数据集(Cube)包括两部分:

1. 一个或多个度量值组,其数据来自关系数据源中的一个或多个事实表。通常情况下,每个事实表对应一个度量值组,度量值组包含一个或多个度量值(例如销售额,成本,售出产品计数)

2. 多维数据集还包含一个或多个来自关系维度表的维度(例如Product和Time).

构建多维数据集时,需要指定希望使用的事实表和维度表。每个多维数据集必须至少包含一个事实表,用于确定该多维数据集的内容。

后面使用向导时可以看到,如果不选量值组会提示:At least one measure group table must be selected.

另外构建多维数据集之前,必须基于维度表创建维度。

我们简单小结一下:Cube=度量值组+维度

多维数据集向导将创建多维数据集所涉及的所有步骤打包在一起, 形成一个简单的顺序过程,创建步骤:

1. 右键 Cubes à New Cube…

点击 Next进入下一步

选择默认值,下一步

2.在Select Measure Group Table页中,选择FactInternetSales 和 FactResellerSales作为度量值组表,下一步

3. 在Select Measures页面中,可以从度量值组表中选择特定的列作为度量值。

默认情况下,会选中度量值组表中的所有列(键列除外)

按照默认选择,下一步

4. 在Select New Dimensions页面上,多维数据集向导将显示可能的维度及其特性。默认情况下,多维数据集向导在每个维度中包含键特性,键特性将在此页面上突出显示,如下图。取消选中Fact Internet Sales和Fact Reseller Sales维度,下一步。

5. 按照默认名称,点击Finish完成多维数据集的创建。

向导完成后,维度也会相应的创建,并且显示在Solution Explorer中。

二、Cube设计器简介

Adventure Works DW多维数据集将在多维数据集设计器中打开,如下图

可以看到,多维数据集设计器具有多个tab, 通过这些tab, 可以对多维数据集进行各种操作。在多维数据集向导完成后打开的默认页面是Cube Structure

其他的一些页面包括:Dimension Usage, Caculation, KPIs, Actions, Partitions, Aggregations, Perspectives, Translations和Browser

Cube Structure页面包含3个窗格:Measures(度量值)、Dimensions(维度)和Data Source View(数据源视图)。

可以在Measures窗格中添加或修改度量值组和度量值。

使用Dimensions窗格可以添加或修改多维数据集的维度。

Data Source View 窗格显示在多维数据集中使用的事实表和维度表,并使用不同颜色进行区分(黄色表示事实表,蓝色表示维度表)

在每个窗格内部右击,可以看到能够在每个窗格中完成的各种操作。

三、维度细化

多维数据集向导仅向创建的维度中添加了最为基本的一些特性。若要对多维数据集中的数据进行分析,还需要对这些维度进行进一步细化, 后续文章我们专门有一篇讲解维度的细化,下面我们先来一个维度细化示例。

1.在Solution Explorer中,双击Dim Date.dim维度。

Dim Date维度将在维度设计器中打开。

Dimension Structure页面包含3个窗格:Attributes, Hierarchies和DSV

2.在DSV窗格中,选中DimDate表中除DateKey以外的所有列,拖到Attributes窗格。该操作会为DimDate表中的每一列创建一个特性。

3. 将键特性从Date Key重命名为Date

4. 将Fiscal Quarter特性从Attributes窗格拖放到Hierarchies窗格。该操作将创建一个层次结构,称为Hierarchy.

将Month Number of Year 特性拖放到Hierarchies窗格的Fisical Quarter特性下面。该操作会在层次结构中创建另一个级别。

类似的,将Date特性拖放到Month Number of Year特性下面。

右击层次结构并选择Rename, 将层次结构重命名为Fiscal Quarter – Month Number of Year, 最终效果如下图:

我们对其他维度也做一些调整。

Dim Currency.dim

Dim Customer.dim

将键特性从 Custom Key 重命名为 Custom

将DSV中来自DimCustomer表的所有列(Custom Key除外)拖放到Attributes窗格

Dim Sales Territory.dim

将键特性从Sales Territory Key 重命名为 Sales Territory

将DimSalesTerritory表中除SalesTerritoryKey和Image以外的所有列从DSV窗格拖放到Attributes窗格。

Dim Product.dim

将键特性从 Product Key重命名为Product

将DimProduct表中除ProductKey和LargePhoto以外的所有列从DSV拖放到Attributes 窗格。

Dim Promotion.dim

将键特性从Promotion Key 重命名为 Promotion

将DimPromotion表中除PromotionKey以外的所有列从DSV窗格拖放到Attributes窗格。

将 English Promotion Category特性从Attributes窗格拖放到Hierarchies窗格。该操作将创建一个新的层次结构。

将Discount Pct特性从Attributes窗格拖放到Hierarchies窗格的English Promotion Category特性下面。该操作会在层次结构中创建一个新的level.

将Promotion特性从Attributes窗格拖放到Hierarchies窗格的Discount Pct级别下面.

重命名层次结构为English Promotion Category – Discount Pct, 如下图

Dim Reseller.dim

将键特性从Reseller Key重命名为Reseller

将DimReseller表中除ResellerKey以外的所有列从DSV窗格拖放到Attributes窗格。

将Annual Revenue特性从Attributes窗格拖放到Hierarchies窗格。改操作将创建一个新的层次结构。

将Number Employees特性从Attributes窗格拖放到Hierarchies窗格的Annual Revenue特性下面。该操作将创建一个新的level, 成为Number Employees

将Reseller特性从Attributes窗格拖放到Hierarchies窗格的Number Employees级别下面

重命名层次结构为Annual Revenue – Number of Employees , 如下图

Dim Employee.dim

该维度具有多维数据集向导创建的3个键特性,与此相对的是,其他维度创建了一个键特性。这是因为,向导在Dim Employee维度内检测到一种父子关系(后续教程介绍)

将Employee Key特性重命名为Employee

将DimEmployee表中除EmployeeKey, ParentEmployeeKey,Sales TerritoryKey和EmployeePhoto以外的所有列从DSV窗格拖放到Attributes窗格。

将Department Name特性从Attributes窗格拖放到Hierarchies窗格。该操作将创建一个新的层次结构。

将Title特性从Attributes窗格拖放到Hierarchies窗格的Department Name层次结构下面。

将Employee特性从Attributes窗格拖放进Hierarchies窗格的Title特性下面。

重命名层次结构为Department Name - Title

四、总结

现在,你已经成功使用SSDT创建了一个多维数据集,并对维度进行了细化。后续将会围绕这个例子继续进行扩展。

最后我们对本篇内容做个总结:

1. 需要了解向导创建多维数据集的顺序 :

Select Creation Meathod (Use existing tables)

-->Select Measure Group Tables

-->Select Measures

-->Select New Dimensions

-->Completing the Wizard

2. Cube设计器的结构:

包含多个tab, 每个tab包含多个窗格,熟悉这些tab和窗格。

3. 初步了解维度细化的一些操作(后续会有专题讲维度操作)

下一篇文章将会介绍如何部署这个项目到SSAS上,以及进行简单的分析。

祝学习进步:)

首发博客园 by MiroYuan,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。

BI之SSAS完整实战教程3 -- 创建第一个多维数据集的更多相关文章

  1. BI之SSAS完整实战教程6 -- 设计维度、细化维度上:创建维度定义特性关系

    前面我们使用过数据源向导.数据源视图向导.Cube向导来创建相应的对象. 本篇我们将学习使用维度向导来创建维度. 通过前面几个向导的学习,我们归纳一下共同点,主要分成两步 1. 使用某种对象类型的向导 ...

  2. BI之SSAS完整实战教程7 -- 设计维度、细化维度中 :浏览维度,细化维度

    上篇文章我们已经将Dim Geography维度设计好. 若要查看维度的成员, AS需要接收该维度的详细信息(包括已创建的特性.成员属性以及多级层次结构), 通过XMLA与AS的实例进行通信. 今天我 ...

  3. BI之SSAS完整实战教程5 -- 详解多维数据集结构

    之前简单介绍过多维数据集(Cube)的结构. 原来计划将Cube结构这部分内容打散,在实验中穿插讲解, 考虑到结构之间不同的部分都有联系,如果打散了将反而不好理解,还是直接一次性全部讲完. 本篇我们将 ...

  4. BI之SSAS完整实战教程4 -- 部署至SSAS进行简单分析

    上一篇已经创建了多维数据集的结构. 接下来我们将多维数据集的架构定义发送到Analysis Services实例,部署到AS上去. 文章提纲 部署和浏览多维数据集 SSMS使用简介 总结 一.部署和浏 ...

  5. BI之SSAS完整实战教程2 -- 开发环境介绍及多维数据集数据源准备

    上一篇我们已经完成所有的准备工作,现在我们就开始动手,通过接下来的三篇文章创建第一个多维数据集. 传统的维度和多维数据集设计方法主要是基于现有的单源数据集. 在现实世界中,当开发商业智能应用程序时,很 ...

  6. BI之SSAS完整实战教程1 -- 开篇, BI简介 & SSAS简介

    文章提纲 商业智能(BI, Business Intelligence)基本概念 SSAS(SQL Server Analysis Services)相关工具(开发.管理和客户端) 总结 一.商业智能 ...

  7. Nodejs 菜鸟教程学习-创建第一个应用

    注:为了解学习,都是参照http://www.runoob.com/nodejs/nodejs-tutorial.html书写,做下笔记. 对于Nodejs开发来说,在开发一个应用时,我们不仅仅是实现 ...

  8. 《BI项目笔记》用Excel2013连接和浏览OLAP多维数据集

    用Excel2013连接和浏览OLAP多维数据集

  9. 微软BI 之SSAS 系列 - 实现Cube 以及角色扮演维度,度量值格式化和计算成员的创建

    在熟悉完下面这三种维度的创建方式之后,就可以开始创建我们的第一个 Cube 了. SSAS 系列 - 自定义的日期维度设计 SSAS 系列 - 基于雪花模型的维度设计 SSAS系列 - 关于父子维度的 ...

随机推荐

  1. 转:windows下多线程通信方法

    多线程知识简介 同一进程中可以包含多个线程,由于进程中的多个线程可以共享进程中的资源,所以使同一进程中的多个线程之间通信相对比较简单. 当需要有多个线程来访问一个全局变量时,通常我们会在这个全局变量前 ...

  2. 程序猿每个VPN真卡手

    昨天起使用了好久好久觉得是世上最好用的poVPN貌似跑路了 刚刚续费了一年也就这样没有了,可是更多的是心疼没有好用的vpn服务. 不过查到了一个红杏chrome插件,不是vpn 如果单单上网页足够了 ...

  3. Spring3系列10- Spring AOP——Pointcut,Advisor拦截指定方法

    Spring3系列10- Spring AOP——Pointcut,Advisor 上一篇的Spring AOP Advice例子中,Class(CustomerService)中的全部method都 ...

  4. Unitils集成DBUnit、Spring-单元测试

    Unitils集成DBUnit.Spring-单元测试 1.maven-pom文件中引入相关jar包 <!-- Unitils -dbunit.Spring --> <depende ...

  5. 原生DOM探究 -- NodeList v.s. HTMLCollection

    涉及获取元素的主要API 在获取原生DOM元素的时候,主要涉及这几个DOM API(链接为Living Standard): Node及对应集合NodeList Element(继承Node)及对应集 ...

  6. 新浪微博OAuth2.0的用法

    最近学习Android开发,照着视频开发新浪微博,但是视频里的介绍的是OAuth1.0的授权方式,试了半天发现用不了. 原来现在一般没审核的用户只能使用OAuth2.0了,视频教学里的方法已经过时了. ...

  7. iOS开发中一些常见的并行处理(转)

    本文主要探讨一些常用多任务的最佳实践.包括Core Data的多线程访问,UI的并行绘制,异步网络请求以及一些在运行态内存吃紧的情况下处理大文件的方案等.

其实编写异步处理的程序有很多坑!所以,本文 ...

  8. $.ajax()方法参数详解

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...

  9. Android系统架构说明介绍

    Android系统架构说明介绍 Android系统架构和一些普遍的操作系统差不多,都是采用了分层的架构,从他们之间的架构图看,Android系统架构分为四个层,从高层到低层分别是应用程序层.应用程序框 ...

  10. [作业向]tinyhttp web服务器设计及完整代码

    最近看了<HTTP权威指南>和<UNP>有了写一个简单的web服务器的想法,正好这个学期没有什么课,所以就花了一个星期这样写了一个出来,鉴于本人水平有限,如果有什么设计或代码错 ...