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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SCTP协议详解

    SCTP(StreamControlTransmissionProtocol)是一种传输协议,在TCP/IP协议栈中所处的位置和TCP、UDP类似,兼有TCP/UDP两者特征。SCTP是可以确保数据传输的,和TCP类似,也是通过确认机制来实现的。和TCP不同的是:1. TCP是以字节为单位传输的,SCTP是以数据块为单位传输的TCP接收端确认的是收到的字节数,SCTP接收端确认的是接收到的…

    2022年4月4日
    48
  • python爬虫爬图片教程_爬虫爬取图片的代码

    python爬虫爬图片教程_爬虫爬取图片的代码用Python爬虫来爬小姐姐本教程将教你从0开始走进Python爬虫1.我们先要知道Python爬虫的原理基本的Python爬虫原理很简单,分为三步获取网页源码通过分析源码并通过代码来获取其中想要的内容进行下载或其他操作话不多说直接开干注意!本教程只是为了快速入门爬虫并实现一个功能,不考虑代码写的漂不漂亮,规不规范先准备上我们的目标网页开始我用的工具是:JetBrai…

    2025年6月28日
    0
  • java 中getmapping,在Java spring尝试使用@getmapping到API时返回空JSON[通俗易懂]

    我有一个带有记录器的@bean,该记录器返回它从JIRAAPI获得的JSON数据。我当前正在记录启动程序时的响应。现在我想开始在我的控制器中使用@getmapping,并想在localhost:8080/上执行GET请求时记录信息。这是Controller类中的@bean,我想将其更改为@getmapping@BeanpublicCommandLineRunnerrun(RestTempla…

    2022年4月12日
    225
  • hanoi塔问题如下图所示_hanoi塔问题最经典的算法

    hanoi塔问题如下图所示_hanoi塔问题最经典的算法什么是hanoi塔?汉诺塔问题:古代有一个梵塔,塔内有三个座A、B、C,A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个和尚想把这64个盘子从A座移到B座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。如下图问题解答问题定义我们把左边的柱子叫做A,中间的柱子叫做B,右边的柱子叫做Chanoi塔的搬运过程;i

    2025年7月25日
    0
  • oracle删除索引释放空间,oracle 索引迁移,释放磁盘空间[通俗易懂]

    oracle删除索引释放空间,oracle 索引迁移,释放磁盘空间[通俗易懂]索引文件迁移步骤:准备工作:1)备份GBOS用户表索引:通过plsqlDevelop工具将GBOS用户表索引全部导出,以做备份。1.查看索引表空间具有那些数据文件selectfile_id,file_name,tablespace_name,bytes/1024/1024M,blocksfromdba_data_fileswhereTABLESPACE_NAME=’USERINDEX…

    2022年9月4日
    2
  • 手机扫码登录实现原理「建议收藏」

    扫码登录原理最近接到一个需求,要求我用手机扫码实现用户登录,这是近几年比较流行的登录方式。这样确实是实现用户体验至上,操作简单,方便实用。拿到需求之后,我与后端大哥商量后,敲定了具体的实施方案。其实重要的还是要弄懂他实现的原理。需求:用户至上的体验效果,手机扫码同步登录状态很多企业在开发自己app的同时会推出网页版,为了登录更方便、更安全。企业会选用手机扫一扫,实现用户登录。神奇的是。为什么…

    2022年4月18日
    261

发表回复

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

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