SSAS(2)_SSA全称

SSAS(2)_SSA全称上1篇通过书中实验练习,开发了一个SSASCube。这里,基于这个Cube,再深入小结、试验有关SSASCube开发的扩展知识:维度属性间的关系及维度的层次结构(Hierarchies)维度与度量的关系多维数据集(Cube)KPI的实现多维数据集(Cube)行为(Action)的实现,例如:钻取多维数据集(Cube)的本地化与视图多维表达式(MDX)的应用书名:MCTSSel

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

 上1篇通过书中实验练习,开发了一个SSAS Cube。这里,基于这个Cube,再深入小结、试验有关SSAS Cube开发的扩展知识:

  • 维度属性间的关系及维度的层次结构(Hierarchies
  • 维度与度量的关系
  • 多维数据集(Cube)KPI的实现
  • 多维数据集(Cube)行为(Action)的实现,例如:钻取
  • 多维数据集(Cube)的本地化与视图
  • 多维表达式(MDX)的应用

书名:MCTS Self-Paced TrainingKit(Exam 70-448): Microsoft SQL Server 2008 – Business Intelligence Development and Maintenance

 

第六章 扩展SSAS Cubes(多维数据集)
课程1:定义用户层次结构(Hierarchies)与维度关系
1 维度的主要作用: 提供用户通过不同主题分析数据,以及下钻(drill down)、上卷(roll up)、分类(categorize)、筛选(filter)、汇总(summarize)、执行其他数据操作。
2 定义属性关系(Atrribute Relationships)
1) 一个SSAS 维度(dimension)的数据来源于一个或多个维度表,若维度基于星型结构(Star),其数据源是个单一的维度表,基于雪花结构(snowflake),其数据源跨多个维度表。
2)区别于关系型数据库(以行与列二维形式存储数据),多维数据模型支持数据的层次结构,例如,由年、季度、月份属性组成的层次结构,并由属性间的关系决定层次。
3)维度属性关系分为1:1(1对1),M:1(多对1), M:M(多对多)。

3 创建与修改自定义维度层次结构(Hierarchies)

4 维度与度量组的关联

1)当添加Cube一个维度时,该维度所关联的度量组,与DSV中定义的表关系有关。使用“Dimension Usage”查看或修改维度与度量组的关系。

2)维度与度量组的关系, regular,fact,referenced,many to many, data mining

5 动手试验:创建、修改维度层次结构

练习1:定义属性关系

1)打开Date维度,单击“属性关系”页面,右击“Month Name”属性,新建属性关系,相关联的属性选“Calendar Quarter”,关系类型选“Rigid”,建立“Month Name”属性与“Calendar Quarter”属性多对一的关系。

2)同理,建立“Month Name”与“Fiscal Quarter”属性多对一的关系。

3)同理,建立“Calendar Quarter”与“Calendar Year”属性多对一的关系。

4)同理,建立“Fiscal Quarter”与“Fiscal Year”属性多对一的关系。

【软件】SSAS开发与维护(2)

5) 打开Product维度,由于是雪花结构的维度,下列属性关系(多对一)自动建立。【软件】SSAS开发与维护(2)

6)打开Sales Territory维度,建立“Sales Terriotry Country”与“Sales Terriotry group”属性多对一的关系。

 

练习2:定义自定义层次结构

1)打开Date维度,在“Dimension Structure”页面,通过拖拽属性的方式,创建“Calendar”层次结构,该层次结构的属性及顺序为Calendar Year,Calendar Quarter,Month Name,Date。

2)同理,创建“Fiscal”层次结构,该层次结构的属性及顺序为Fiscal Year,Fiscal Quarter,Month Name,Date。

【软件】SSAS开发与维护(2)
3) 保存,部署。创建好属性层次结构的效果:
【软件】SSAS开发与维护(2)

练习3:查看、修改维度关系(Dimension Usage)

1) 事实表也可作为维度使用,打开Adventure Works DW2008 DSV,FactInternetSales事实表中添加一个字段“LineItemDescription”,LineItemDescription = convert(char(10),SalesOrderNumber) + ‘Line ‘ + convert(char(4),SalesOrderLineNumber)。

2)根据向导,新增一个名为Internet Sales Order Details维度:

a. 选现有表

b. 数据源信息,选“FactInternetSales”表,Key column默认Sales Order Number,Name Column选“LineItemDescription”。

b. 相关表选择页面,清空所有相关的表的选择。

c. 维度属性选择页面,只选“Sales Order Number”。

3)将“Internet Sales Order Details”维度添加至现有Cube中。

4)打开Adventure Works Cube,在“Dimension Usage”页面中,查看维度与度量的关系。

5)删除一个冗余的Date维度,将Date(Order Date)维度重命名为Date。

【软件】SSAS开发与维护(2) 

5)设置Date维度与Currency Rate度量的关联,关系类型:Regular,由键值连接。保存,部署。

【软件】SSAS开发与维护(2)

 

程2:创建KPIs,行为(actions),翻译与视图(perspectives)
1 理解KPI
在SSAS中,关键性能指标(KPI)是个扩展的度量,主要有4个属性,值(value),目标(goal),状态(status)和趋势(trend)。其中值是必填,其余是可选。
1)值, 表示当前KPI的值,属性通常映射到常规或计算过的度量。
2)目标,定义KPI的目标值,可以是个固定的数值,一个常规用作表示目标值的度量或是计算过的度量。
3)状态,标识如何比较KPI值和目标值,表达式返回-1,0,1,-1为差绩效,0为可接受的绩效,1为好绩效。
4)趋势:标识KPI值的变化趋势,表达式返回[-1,1]。

2 创建关键性能指标KPIs

3 浏览KPIs

有多种方式显示SSAS的KPIs,最简便方法,使用BIDS内置的KPI浏览器,也可以在Excel,SSRS中使用,或是SSMS中应用MDX语句\函数查询KPI的属性值。

4 执行行为(Actions)

1)行为(Actions)的主要作用是扩展Cube的功能,例如:下钻至详细信息。此外,书中提及Excel 2007及以上版本支持这个功能,SSRS不支持,具体没有检验过。

2)行为的类别

a. 常规(regular)行为:dataset,proprietary,rowset,statement,url(默认)

b. 钻取(drillthrouh)行为

c. 报表行为(reporting)

5 通过翻译(Translations)本地化Cubes

6 Cube的视图(perspectives)

7 动手试验:创建Cube KPIs,行为,翻译和视图

练习1:实现经销商的销售KPI

打开Adventrue Works Cube, KPIs页面,新建一个名为“Reseller Sales”的KPI。

1)关联的度量组(associated measure group)选Reseller Sales。

2)KPI值表达式(value Expression) = [Measures].[Reseller Sales Amount]

3) KPI目标表达式(Goad Expression) =

1.40*([Due Date].[Calendar].PrevMember,[Measures].[Reseller Sales Amount])

即目标为当前时间前一个成员销售额的140%

4)状态表达式(Status)

case

when KpiValue(“Reseller Sales”)/KpiGoal(“Reseller Sales”) >= 1 then 1

when KpiValue(“Reseller Sales”)/KpiGoal(“Reseller Sales”) <1 and KpiValue(“Reseller Sales”)/KpiGoal(“Reseller Sales”) >=.85 then 0

else -1

end

5)趋势表达式(Trend)

([Measures].[Reseller Sales Amount]- ([Date].[Calendar].PrevMember,[Measures].[Reseller Sales Amount]))/[Measures].[Reseller Sales Amount]

【软件】SSAS开发与维护(2)

6)保存,部署,在KPI浏览器中,通过筛选看某个时间reseller sales的销售额,状态和趋势。

【软件】SSAS开发与维护(2)

练习2:实现一个钻取行为

1)打开Adventrue Works Cube,行为(Actions)页面,新建“New Drillthrough Action”(钻取行为),命名为“Reseller Details”。

2)行为目标–>度量组成员(measure group members)选reseller sales

3)为限制显示的记录行数,条件(Condition)设

([Date].[Date].currentMember is [Date].[Date].[All])= false

即当选到日期时触发这个行为。

4)钻取的列名,选取Product维度中Product,Color,Model Name属性,选取Date维度中Date属性,以及Reseller Sales中所有度量。实际操作到这步,Product维度与Reseller Sales的关系需要配置一下。

5)为限制显示行数,最大行设100。

【软件】SSAS开发与维护(2)

6)保存,部署,在浏览器中,将Date维度中Calendar层次结构及Reseller Sales Amount 拖入pivot,展开至日期级别,右击这个日期的销售额,菜单中出现“Reseller Details”选项(图一),点击查看这一天的详细信息(图二)。

图一:

【软件】SSAS开发与维护(2)

图二:

【软件】SSAS开发与维护(2)

 

练习3:翻译一个维度

1)打开Product维度,翻译(Translations)页面。新建翻译,选择西班牙语言Spanish(Spain)。

2)在新增的Spanish(Spain)列中,维度名重命名为西班牙语Producto,Product属性与DimProduct表中SpanishProductName绑定。

【软件】SSAS开发与维护(2)

3)保存,部署,在浏览器中,选语言Spanish(Spain),产品名显示西班牙语。做到这步,老是联想到ToysIII中西班牙语言状态的巴斯光年,: )。

【软件】SSAS开发与维护(2)

练习4:设置Cube的视图(perspectives)

过于简单,略


 

课程3:使用MDX创建计算和查询

1 MDX((Multi-Demensional expression)多维表达式语法(SSAS)

1) 元组(Tuples)

引用一个元组中一个度量成员,可以直接使用成员名或加“&”符号,例如:[Product].[Product].[Mountain-100],[Product].[Product].&10。

2)集合(Sets)

3)基本MDX查询(Select)语句

Select <row_axis, mdx_set,> on Columns,

<column_axis, mdx_set,> on Rows

From <from_clause, mdx_name,>

Where <where_clause, mdx_set,>

4)计算成员(with)语句(略)

5)MDX函数

– CurrentMember,PrevMember,Members,Parent,Children

2 创建计算成员(calculated members)

3 定义命名集合(named sets)

4 动手试验

练习1:在SSMS中,创建和执行MDX查询语句

1)打开SSMS,打开Template Explorer视图(ctrl + alt + T),单击Analysis Server,展开MDX–>Queries,双击Basic query template,生成select基本语句。连接本地(localhost)SSAS Server。选择“TK 70-448 SSAS Project”数据库。

2)MDX查询语句编辑如下:

Select [Measures].[Internet Sales Amount] on Columns,

[Product].[Product Category].members on Rows

From [Adventure Works]

Where [Date].[Calendar].[Calendar Year].&[2008]

3)执行结果:

【软件】SSAS开发与维护(2)

练习2:在BDIS中定义一个计算成员

1)打开Adventure Works Cube,计算(calculations)页面,新建一个名为Sales Amount的计算成员,配置如下属性:

Name = Sales Amount
Expression = [Measures].[Internet Sales Amount] + [Measures].[Reseller Sales Amount]
Format String = currency

2)单击calculation属性,calculation name选[Measures].[Sales Amount],Display Foler输入Sales Summary

3)保存,部署,在浏览器中的效果:此外,OLAP只保存计算成员的定义,非数据,所以Cube大小不会增加。

【软件】SSAS开发与维护(2)

 

练习3:定义一个命名集合(named Set)

1)打开Adventure Works Cube,计算(calculations)页面,新建一个名为Top 50 Most Profitable Customers

的命名集合。

表达式 =

TopCount((existing[Customer].[Customer].[Customer].Members),50,[Measures].[Internet Sales Amount])

2)保存,部署,在浏览器中查看效果:显示最佳50个客户。此外,这个集合也可以在Excel 2007及以上版本中使用。

【软件】SSAS开发与维护(2)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210135.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • bootstrap table editable 文档_bootstrap复选框样式

    bootstrap table editable 文档_bootstrap复选框样式问题描述:采用bootstrap中的table进行页面布局,然后通过ajax请求数据源,然后动态添加表格内容。添加时,采用的自己拼接字符串,然后追加到表格中。结果发现bootstrap的表格样式没有生效。页面代码:消费类别描述消费数量消费时间JS代码:$.ajax({ty

    2022年9月20日
    0
  • SSRS:使用SQL2008教程学习Reporting Services之数据库AdventureWorks2008问题_学习笔记1

    SSRS:使用SQL2008教程学习Reporting Services之数据库AdventureWorks2008问题_学习笔记1首先声明我是菜鸟,刚开始学习ReportingServices。在学习教程中的一点笔记。从SQL2005开始,微软就提供了强大的ReportingServices功能,的确好用,对于经常需要出复杂报表的朋友可谓是一大欢喜。SQL2008中的SQLServer教程是一本很好的学习资料,我的是SQL2008非R2版,ReportingServices章节中需要用到微软示例…

    2022年9月4日
    6
  • AutoEventWireup

    AutoEventWireup
      Google了一番,大家讨论AutoEventWireup问题可不少,Page指令的AutoEventWireup属性被设置为true(或者如果缺少此属性,因为它默认为true),该页框架将自动调用页事件,即Page_Init、Page_Load等14个方法,在这种情况下,不需要任何显式的Handles子句或委托。但这是怎么实现的呢?.net又怎样根据AutoEventWireup属性来动态编译或者预编译页面呢?我在Google上没有找到答案。
     

    2022年5月28日
    33
  • SpringBoot——关于Cache缓存获取值后修改的问题「建议收藏」

    SpringBoot——关于Cache缓存获取值后修改的问题「建议收藏」SpringBoot——关于Cache缓存获取值后修改的问题

    2022年4月23日
    34
  • JavaScript 中如何判断变量是否为数字

    JavaScript 中如何判断变量是否为数字简介JavaScript是一种动态类型语言,这意味着解释器在运行时确定变量的类型。实际上,这也允许我们在相同的代码中使用相同的变量来存储不同类型的数据。如果没有文档和一致性,我们在使用代码时并不总是知道变量的类型。当我们期望一个变量是数字时,对字符串或数组进行操作可能会在代码中导致奇怪的结果。在本文中,我们将会介绍一些判断变量是否为数字的函数。像”10″之类的数字的字符串不应被接受。在JavaScript中,诸如NaN,Infinity和-Infinity之类的特殊值也是数字类型的。根据这些要求,

    2022年6月22日
    23
  • SpringFramework5.0 @Indexed注解 简单解析

    纸上得来终觉浅 绝知此事要躬行 —陆游最近在看SpringBoot核编程思想(核心篇),看到走向注解驱动编程这章,里面有讲解到:在SpringFramework5.0引入了一个注解@Indexed ,它可以为Spring的模式注解添加索引,以提升应用启动性能。官网地址:Spring Framework 5.1.12.RELEASE beans-scanning-index…

    2022年2月28日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号