数仓个人作业(四)使用SSAS进行OLAP分析

例子

就以下面这个航班项目为例,分别进行切片、切块、钻取、旋转、移动和与移动平均值的计算

(图中有个错误,事实表没有主键的标识,是我一开始忘了设置组合键)

一、切片(Slice)

切片如下图所示:

1、点它,在excel中进行分析(因为在SSAS的浏览器中,它仅显示单维数据,excel可以显示多维数据)

2、拖拽“到达城市”到“行”(这里根据你的需求拖你的属性),左边出现城市的列

 

3、拖拽“航空公司”到“列”

4、拖拽“...计数”到“值”

5、拖拽“飞行日期”到“筛选”

6、筛选一个时间,即完成切片

 

 

7、(可忽略)如果在在SSAS浏览器中做,是这样的

二、切块

1、参考切片,切块是选择更多的时间

2、在SSAS浏览器中的体现如下

三、下钻

我的理解是,在excel里面设置多个行。也就是让它有多层的结构可以展开,展开的过程就是细化的过程,下钻大概是这个意思。

这里我的时间维表没有设置好,如果把时间维设置成分开的年月日,则“行”里面就是“年”、“月”、“日” 

四、上卷

上卷是相对于下钻的,下钻是添加多行,那么上卷就是删掉一行或多行。这样就是泛化的过程,不想下钻能看到更多的细节。

五、旋转

就是把行列互换

六、移动和

上面5个操作,我们看到的都是某一时间点的状态,现在我们想看到表在不同时间点的变化趋势,就要用到移动和。这是要写MDX代码的。所以我们从“浏览器”切换到“计算”,在右边灰色的方框内写代码。

教材上已经有了示例,这里我改了一下分析的行和值。

CALCULATE;
CREATE MEMBER CURRENTCUBE.[MEASURES].[sum of three days]
AS sum(
[Time Dim].[Filght Date].currentMember.Lag(2):
[Time Dim].[Filght Date].currentMember,
[Measures].[Frequent-flyer Flight Segment Fact Table 计数]
),
FORMAT_STRING="CURRENCY",
NON_EMPTY_BEHAVIOR={[Measures].[Frequent-flyer Flight Segment Fact Table 计数]},VISIBLE=1

这个代码的意思:

第一句是固定的,不管。 

第二句是创建一个成员,也可以说是一列属性,它叫sum of three days(也就是移动和)。

第三句到第六句,我们抽象成这样:sum(A:B,C),其中A是 [Time Dim].[Filght Date].CurrentMember.Lag(2) ,B是 [Time Dim].[Filght Date].CurrentMember,这就代表 A是B的前两行,Lag(2)方法就是获取前两行的意思。A和B之间的冒号就是代表从A到B的意思,求和的列是C(也就是[Measures].[Frequent-flyer Flight Segment Fact Table 计数] )。所以,sum(A,B,C)代表着求从当前行到前一行关于列 [Frequent-flyer Flight Segment Fact Table 计数](乘车人次)的和。

后面两句不是很懂,但是并不影响程序执行。

运行过程是这样的:

把代码放进去,注意结尾不能有分号,不然报错。然后保存。右键项目部署,成功后直接打开excel。

 

excel里面多了“数值”这一项,行的选择必须是代码中设置的日期。这样就有移动和了。

七、移动平均

移动平均只用把sum改成avg

CALCULATE;
CREATE MEMBER CURRENTCUBE.[MEASURES].[sum of three days]
AS avg(
[Time Dim].[Filght Date].currentMember.Lag(2):
[Time Dim].[Filght Date].currentMember,
[Measures].[Frequent-flyer Flight Segment Fact Table 计数]
),
FORMAT_STRING="CURRENCY",
NON_EMPTY_BEHAVIOR={[Measures].[Frequent-flyer Flight Segment Fact Table 计数]},VISIBLE=1

其他操作如六所示。

 

 

 

 

 

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值