码迷,mamicode.com
首页 > 其他好文 > 详细

Create Cube

时间:2015-07-02 13:54:47      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

1 cube是SSAS的核心对象,其创建过程,比较简单。

1.1,选中一个Fact Table

Measure Group是从一个Fact Table中产生的,Measure Group的数据来源于Fact Table,但是此Measure Group并不是关系型DB中的Table,Measure Group在SSAS中被赋予更多新的含义。

技术分享

 

1.2,Select Measures

一个Measure Group可以有多个Measure,一个Measure代表的是一个数值化的指标。

系统自动添加了一个Measure,FactTableName+Count,实际上对Measure Group进行count运算。

技术分享

1.3,Select dimension

为Measure Group选择dimension,系统是根据外键关系为Measure Group选择Dimension的。

Measure Group和Dimension之间的关系,在Dimension Usage选项卡中能够进行配置,SSAS非常只能,能够通过外键关系,自动寻找跟FactTable有外键关系的维度,添加到Cube中,并自动设置Dimension Usage的Relationship type。

可以不选择任何维度,手动在Dimension Usage选项卡中进行配置。

技术分享

1.4, 生成cube,查看cube的DataSourceView

技术分享

 

1.5 查看cube的Measures和Dimensions

在DimProduct中,Color是用户定义的成员属性,其Icon和其他属性的Icon不同。

技术分享

 

2,Cube structure选项卡

2.1 修改Measure

可以为Measure Group新增Measure,或删除Measure Group的Measure。

点击New Measure,创建一个新的Measure: Fact Product Inventory Count ,Usage是count of rows,值是行的个数。

技术分享

技术分享

 

2.2 在cube的Browser选项卡中,拖入Filter condition,Measure  Fact Product Inventory Count的值是125,说明 Fact Product Inventory Count是查询出来的数据集的行数,而Unit Cost是查询结果集的聚合。

技术分享

2.3 通过点击 Design Mode来查看MDX语句

技术分享

这是个嵌套的MDX语句,看起来十分复杂,实际上,可以简化

SELECT NON EMPTY 
    { [Measures].[Fact Product Inventory Count], [Measures].[Unit Cost] } ON COLUMNS 
FROM 
( 
    SELECT ( { [Dim Date].[Date Hierarchy].[Date Key].&[20050702] } ) ON COLUMNS 
    FROM 
    ( 
        SELECT ( { [Dim Date].[Month Number Of Year].&[7] } ) ON COLUMNS 
        FROM 
        ( 
            SELECT ( { [Dim Product].[Product Hierarchy].[Product Category Key].&[1] } ) ON COLUMNS 
            FROM [Adventure Works DW2012]
        )
    )
) 
WHERE ( [Dim Product].[Product Hierarchy].[Product Category Key].&[1], 
        [Dim Date].[Month Number Of Year].&[7], 
        [Dim Date].[Date Hierarchy].[Date Key].&[20050702] ) 
CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

使用Where子句简化,写法简单

SELECT NON EMPTY 
    { [Measures].[Fact Product Inventory Count], [Measures].[Unit Cost] } ON COLUMNS 
FROM [Adventure Works DW2012]
WHERE ( [Dim Product].[Product Hierarchy].[Product Category Key].&[1], 
        [Dim Date].[Month Number Of Year].&[7], 
        [Dim Date].[Date Hierarchy].[Date Key].&[20050702] )

使用嵌套查询简化,这种写法不好理解,只需要记住,select查询的思路是使用切片切割cube,将cube中不符合切片条件的成员都剔除掉,最后计算Measure的聚合值就是结果值。

SELECT NON EMPTY 
    { [Measures].[Fact Product Inventory Count], [Measures].[Unit Cost] } ON COLUMNS 
FROM 
 ( 
    SELECT ( { [Dim Date].[Date Hierarchy].[Date Key].&[20050702] } ) ON COLUMNS 
    FROM 
    ( 
        SELECT ( { [Dim Date].[Month Number Of Year].&[7] } ) ON COLUMNS 
        FROM 
        ( 
            SELECT ( { [Dim Product].[Product Hierarchy].[Product Category Key].&[1] } ) ON COLUMNS 
            FROM [Adventure Works DW2012]
        )
    )
) 

 2.4 使用Mdx函数来做一个等价的查询, Fact Product Inventory Count是一个Measure,这个Measure实际上是用的Count函数,由于DimDate使用的叶级成员,DateKey=20050702,实际上统计的是ProductKey的个数,使用count(existing [Dim Product].[Product Hierarchy].[Product Key].Members)来模拟。

with member [Measures].FactProductCount
as count(existing [Dim Product].[Product Hierarchy].[Product Key].Members)

SELECT NON EMPTY 
    { [Measures].[Fact Product Inventory Count],[Measures].FactProductCount, [Measures].[Unit Cost] } ON COLUMNS
from [Adventure Works DW2012]
where {( [Dim Product].[Product Hierarchy].[Product Category Key].&[1], 
        [Dim Date].[Month Number Of Year].&[7], 
        [Dim Date].[Date Hierarchy].[Date Key].&[20050702] )} 

3 Dimension Usage选项卡

维度用法选项卡,是指定义Measure Group和Dimension的关系。

技术分享

Regular关系是指:Measure Group和Dimension 之间存在外键关系,Dimension Table提供主键,Fact Table 提供 Foreign Key,Dimension的PK是唯一的,需要显示设置的是Fact Table的FK。

3.1 增加cube的Dimension,在空白处点击右键,弹出菜单,Add Cube Dimension,为Measure Group增加cube。

技术分享

3.2 定义Measure Group和Dimension的Relationship

技术分享

 

Create Cube

标签:

原文地址:http://www.cnblogs.com/ljhdo/p/4603013.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!