前面我们使用过数据源向导、数据源视图向导、Cube向导来创建相应的对象。

本篇我们将学习使用维度向导来创建维度。

通过前面几个向导的学习,我们归纳一下共同点,主要分成两步

1. 使用某种对象类型的向导创建对象,完成主要结构搭建

2. 使用相应的设计器完成最终对象的修改和细化

有点像送快递,先通过大的物流(创建对象向导)把货物送到相应的城市,再通过快递员(设计器进行细化)送到具体顾客手中。

同样的,我们使用维度向导以一种通用的方式来创建维度,然后根据自己的业务需求,使用维度设计器将创建的维度放置到它们的最终目的地。

文章提纲

  • 使用维度向导创建维度
  • 使用维度设计器设计维度
  • 总结

使用维度向导创建维度

维度可以提供切分多维数据集数据的功能。

前面提到过,维度包含层次结构的对象,分为特性层次结构和多级或用户层次结构。前者对应于关系表中的单个列,后者派生自两个或更多特性层次结构。

我们接着使用我们之前创建的项目ASMultidimensionalPOC 来进行进一步的练习。

在原有的基础上,我们添加Geography维度,步骤:

一、 添加表DimGeography到dsv中

1. 切换到dsv视图,点击DSV设计器工具栏上的Add/Remove Objects按钮

2. 选择DimGeography 添加到DSV中。

二、 使用维度向导创建维度

1. 右击Dimensions文件夹 -->New Dimension

2. 在Select Creation Method页面选择默认项 Use an existing table

3. 在Specify Source Information页面中,需要选择用于创建维度的DSV, 基于的主表,维度的键列及名称列(可选),按照下面选择,下一步

在Main table中选择DimGeography表.

Key columns列表和Name column字段将自动设置为选定表的主键。

4. Select Related Tables

5. Select Dimension Attributes页面显示选择作为要创建的维度的主表的列。

向导会将这些列转换为维度特性。按下图设置, Next

6. 最后一个页面显示将要为维度创建的特性,点击完成。

至此,我们用向导创建的第一个维度就完成了。

接下来使用维度设计器来进一步设计这个维度。

使用维度设计器设计维度

首先看下维度设计器的组成。

可以看到,顶部有4个tab页,分别是

Dimension Structure,Attribute Relationships, Translations, Browser

本篇会介绍前两个tab, Translations和Browser后面再讲。

第一个tab包括3个窗格,分别是Attributes, Hierarchies, DSV

Attributes显示维度的特性,Hierarchies窗格显示维度的层次结构及其级别,DSV窗格显示维度中使用的表。

此外,还包含一个工具栏,鼠标放上去就能看到功能说明,不再多做介绍。

我们首先对Dimension Structure中的窗格进行介绍.

Attributes

特性层次结构(简称为特性)是只包含两个级别的层次结构,分别是子级别和All级别。

前者针对每个不同的特性值包含一个成员,后者包含所有叶子级别成员的聚合值。

All级别是可选的。每个特性直接对应于DSV中的某个表列。

Attributes窗格中默认视图是Tree,还有List和Grid 视图。

Attributes Relationships

同一纬度特性具有一对多关系时可以定义特性关系,例如 Country,State和City 之间。

每个维度必须至少有一个特性定义为键特性,维度向导会自动与维度的所有特性建立关系。(显然键特性在多的一侧)

指定特性关系有助于改进查询性能以及告知用户层次结构的聚合设计。

Atrributes Relationships包含3个窗格,如下

我们完成Country – State – City 特性关系。

可以通过Diagram窗格,Attributes窗格,Attribute Relationships窗格三种方式创建关系,我们常用的是前两种,下面我们分别举例。

一、创建关系

1.在Diagram窗格中通过拖拽的方式修改特性关系。

2.通过Attributes窗格建立 Country – Province关系

如下图,右键多的这一侧,选择New Attribute Relationship

按下图选择

二、编辑关系

我们使用Attribute Relationships窗格编辑 French Country Region Name和Spanish Country Region Name特性的现有关系。

1. 在Attribute Relationships窗格中如下图操作

选择方框处,

将关系属性Cardinality由Many设为One, 将English Country Region Name和French Country Region Name的关系由many-to-one改为one- to - one

同样的方式修改下Spanish Country Region Name

三、删除关系

通过Attribute Relationships删除关系比较方便

通过设定关系, 预先聚合,可以不必遍历完整的层次结构,性能上可以得到改进。

创建 用户层次结构

用户层次结构(也称多级层次结构)是通过某个维度的特性创建的。

每个用户层次结构都包含一个或多个级别,每个级别本身都是一个特性层次结构。

基于创建的Geography维度的特性,可以创建一个称为Country-State-City-Postal Code的逻辑用户层次结构。

1.切换到 Dim Geography维度的Dimension Structure选项卡,将相应的特性拖拽到右边Hierarchies中,如下图。

2. 改名

创建的层次结构默认名为Hierarchy, 右击Rename改为Geography

将层次结构中的每一级都Rename,方法类似。

最终效果如下图

现在已经创建了一个称为Geography的用户层次结构,并且该层次结构包含4个级别,可单击箭头查看相关特性。

请注意Geography层次结构名称旁边的警告图标以及层次结构名称下面的曲线。

鼠标移上去可以看到提示信息,指示出该层次结构的一个或多个级别之间不存在特性关系,并且可能会导致性能下降。

当前的层次结构设计称为非自然层次结构。

如果层次结构中的某个级别的特性值不能知道上一个级别中谁是父级,那么就会存在非自然层次结构。

举个更容易理解的非自然层次结构的示例Customer Gender-Age层次结构,其中Gender是维度的第一级,而Age是第二级。知道某个客户37岁并不会给出任何性别暗示。

与此相对的是,在自然层次结构中,知道某个级别中某个特性的值可明确地指出在层次结构中下一个级别中谁是他的父级。

自然层次结构的一个示例是Product维度层次结构,其中包含Category,Sub-Category和Product 3个级别。知道某种产品的Sub-Category是Mountain Bike,那么就知道他所属的Category是Bike.

特性值之间的这种关系是通过特性关系来定义的。

我们优化当前的Geography层次结构,使其称为自然层次结构。

1.切换Attribute Relationships页面。可以看到,Post Code和City之间没任何关系。

2.在Diagram窗格中,将Postal Code特性拖放到City特性。

此时建立起了关系。

3. 再切换Dimension Structure选项卡查看,可以看到警告已消失。

保存该维度。

总结

我们使用维度向导创建了第一个独立的维度。

大家需要掌握维度向导的使用方法,并重点掌握维度设计器的用法(Dimension Structure和Attribute Relationships的页面功能)

下一篇我们会将这个维度部署,修改一些部署错误,并查看维度数据以及进一步细化。

祝学习进步:)

相关系列文章列表:

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

BI之SSAS完整实战教程6 -- 设计维度、细化维度上:创建维度定义特性关系的更多相关文章

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

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

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

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

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

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

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

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

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

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

  6. BI之SSAS完整实战教程3 -- 创建第一个多维数据集

    上一篇我们已经完成了数据源的准备工作,现在我们就开始动手,创建第一个多维数据集(Cube). 文章提纲 使用多维数据集向导创建多维数据集 总结Cube设计器简介 维度细化 总结 一.使用向导创建多维数 ...

  7. Android简易实战教程--第四十三话《上拉加载与下拉刷新》

    ListView的下拉刷新很常见,很多开源的框架都能做到这个效果,当然也可以自己去实现.本篇案例是基于xlistview的. 布局: <RelativeLayout xmlns:android= ...

  8. Scrapy系列教程(3)------Spider(爬虫核心,定义链接关系和网页信息抽取)

    Spiders Spider类定义了怎样爬取某个(或某些)站点.包含了爬取的动作(比如:是否跟进链接)以及怎样从网页的内容中提取结构化数据(爬取item). 换句话说.Spider就是您定义爬取的动作 ...

  9. 大数据学习笔记——Hbase高可用+完全分布式完整部署教程

    Hbase高可用+完全分布式完整部署教程 本篇博客承接上一篇sqoop的部署教程,将会详细介绍完全分布式并且是高可用模式下的Hbase的部署流程,废话不多说,我们直接开始! 1. 安装准备 部署Hba ...

随机推荐

  1. IOS CopyPNGFile 异常问题解决

    今天突然出现一个编译问题,搞了我好久,这里不多说了.直接整理出来,记录下来! 问题描述如下图: 出现:CopyPNGFile 异常错误,Command /Applications/Xcode.app/ ...

  2. IT战略规划咨询

    目录 1IT战略规划微咨询简介 2IT战略的意义 3服务模式 4IT战略规划焦点问题 5IT战略规划步骤 6服务提供方微咨询网 7微咨询价值 8微咨询服务方式 9IT工作规划与IT战略规... IT战 ...

  3. 最后关于Pipeline完整的图如下:

    最后关于Pipeline完整的图如下:

  4. css3实现进度条的模拟

    两种进度条动画的实现: 1.css3,但IE9-不支持. 2.js动画,兼容性好,但没有css3实现的顺畅 Demo: <html>    <head>        < ...

  5. 数据人员Sql必会——行转列

    今天被问到列转行的问题,竟然没有回答上来,回想自己也是数据开发人员,平时的积累真是不到位,下面总结一下列转行. 假设咱们有一个学生得分数据表:student_score CREATE TABLE st ...

  6. sys.stdout sys.stderr的用法

    stdout:标准输出 stderr:标准错误 print  相当于 sys.stdout.write() + 换行 一个将数据流写入文件的程序,文件名为:main.py def main(out=s ...

  7. linux下批量查找/替换文本内容

    一般在本地电脑上批量替换文本有许多工具可以做到,比如sublime text ,但大多服务器上都是无图形界面的,为此收集了几条针对linux命令行 实现批量替换文本内容的命令: 1.批量查找某个目下文 ...

  8. TeamViewer连接Windows8.1系统黑屏解决方案

    TeamViewer用win7连接win8.1 都是64位系统,总是黑屏,可以看到鼠标也联动了,聊天传输文件都没有问题,反向用win8.1连接win7也没问题,而且TeamViewer更新到最新版本了 ...

  9. 一种高效的 vector 四则运算处理方法

    实现 vector 的四则运算 这里假设 vector 的运算定义为对操作数 vector 中相同位置的元素进行运算,最后得到一个新的 vector.具体来说就是,假如 vector<int&g ...

  10. 【原】Linux Raid 实验

    本文参照以下两个链接,将实验重做了一遍,目的就是加深印象及提升实操能力 参照链接:http://www.opsers.org/base/learning-linux-the-day-that-the- ...