商业智能添加维度智能简介

    本人认为本文涉及的知识并不常用,可以作为了解参考即可。

一、账户智能

   前面几个文章有提到过,设置自定义的维度,其中就是一个类似于账号的维度,SSAS维度CustomRollupColumn用法-自定义聚合方式,这种方式可以实现收入=总收入-总投入的自定义聚合方式,出来这个方法,MSBI还提供一种专门针对账户类型的维度的商业智能,我们只需要将这种账户类型的表设置好,首先构建一个普通的账号维度,然后再此基础上添加商业智能:右键一个普通的账户维度(类型为Regular),选择添加商业智能,选择‘定义账户智能’。

下一步,之后将你的维度表中的字段映射到内置的账户类型,然后,下一步完成,此时就可以构建一个完整的账户类型维度,最后在浏览数据的时候,就会实现类似于SSAS维度CustomRollupColumn用法-自定义聚合方式这样智能维度。

二、时间智能

  首先,你的要准备一个时间类型的维度(类型为Time),然后右键多维数据集添加商业智能:

然后,下一步:选择你要在哪个层级上添加什么样的时间计算,点击下一步,SSAS会让你选择,与时间计算相关联的度量值,这里就不给出截图了,我选择的是年度同比在增长率和增长量;

最后,完成添加之后,出现的变化是:在维度中多出一个层级结构的计算:

除此之外,在cube的计算标签页中你也可以看到,多了一个计算成员,其实就是与时间计算相关联的度量值的MDX脚本计算:

下面为此计算成员的MDX脚本语句:

/*
CALCULATE 命令控制多维数据集中叶单元的聚合。
如果将其删除或修改,会影响多维数据集内的数据。
只应在希望手动指定如何聚合多维数据集时编辑此命令。
*/
CALCULATE;

/*

  开始 [Dim Date].[层次结构] 层次结构的时间智能脚本。

*/

Create Member 
  CurrentCube.[Dim Date].[层次结构 Dim Date 计算].[年度同比增长率] 
  As "NA" ;
  
Create Member 
  CurrentCube.[Dim Date].[层次结构 Dim Date 计算].[年度同比增长量] 
  As "NA" ;
  

Scope(
       {
         [Measures].[Total Amount - Fact IP Medicine]
       }
) ;
/*2011年度同比增长率*/  
  ( 
    [Dim Date].[层次结构 Dim Date 计算].[年度同比增长率],
    [Dim Date].[年-层级].[年-层级].Members ( 1 ),
    [Dim Date].[Date Key].Members 
  ) 
  
  =  null;    
/*2011年度同比增长量*/  
  ( 
    [Dim Date].[层次结构 Dim Date 计算].[年度同比增长量],
    [Dim Date].[年-层级].[年-层级].Members ( 1 ) ,
    [Dim Date].[Date Key].Members 
  ) 
  
  =    null;  


/*年度同比增长率*/  
  ( 
    [Dim Date].[层次结构 Dim Date 计算].[年度同比增长率],
    [Dim Date].[年-层级].[年-层级].Members ( 1 ) : Null,
    [Dim Date].[Date Key].Members 
  ) 
  
  =      

  ( 
    ( 
      [Dim Date].[层次结构 Dim Date 计算].[当前 Dim Date], 
      [Dim Date].[层次结构].CurrentMember
    ) 
    
    -
    
    ( 
      [Dim Date].[层次结构 Dim Date 计算].[当前 Dim Date],
      ParallelPeriod(
                      [Dim Date].[层次结构].[年-层级],
                      1,
                      [Dim Date].[层次结构].CurrentMember
      )
    )
  )
  
  /
  
  ( 
    [Dim Date].[层次结构 Dim Date 计算].[当前 Dim Date],
    ParallelPeriod(
                    [Dim Date].[层次结构].[年-层级],
                    1,
                    [Dim Date].[层次结构].CurrentMember
    )
  ) ;
  
  ( 
    [Dim Date].[层次结构 Dim Date 计算].[年度同比增长率],
    [Dim Date].[年-层级].[年-层级].Members ( 0 ),
    [Dim Date].[Date Key].Members 
  ) = Null ; 
  
  Format_String( 
                 ( 
                   [Dim Date].[层次结构 Dim Date 计算].[年度同比增长率],
                   [Dim Date].[Date Key].Members
                 )
  ) = "Percent" ;

  
/*年度同比增长量*/  
  ( 
    [Dim Date].[层次结构 Dim Date 计算].[年度同比增长量],
    [Dim Date].[年-层级].[年-层级].Members ( 1 ) : Null,
    [Dim Date].[Date Key].Members 
  ) 
  
  =      

  ( 
    [Dim Date].[层次结构 Dim Date 计算].[当前 Dim Date], 
    [Dim Date].[层次结构].CurrentMember
  ) 
  
  -
  
  ( 
    [Dim Date].[层次结构 Dim Date 计算].[当前 Dim Date],
    ParallelPeriod(
                    [Dim Date].[层次结构].[年-层级],
                    1,
                    [Dim Date].[层次结构].CurrentMember
    )
  ) ;
  
  ( 
    [Dim Date].[层次结构 Dim Date 计算].[年度同比增长量],
    [Dim Date].[年-层级].[年-层级].Members ( 0 ),
    [Dim Date].[Date Key].Members 
  ) = Null ;

  
End Scope ;
/*

  结束 [Dim Date].[层次结构] 层次结构的时间智能脚本。

*/
  

 然后,部署项目,浏览数据:可以简单的看到年度的增长率和增长量已经自动的计算出来了。

三、服务器时间维度和维度智能

    服务器时间维度,一般来说就是,新建维度的时候,你的DW中并没有对应的时间维度表,就可以采取这种做法来替代时间维度,步骤很简单:新建维度,选择服务器时间维度即可,简单的设置选择,然后一路下一步,最终完成是这样子的:

下面我们可以部署处理项目,然后浏览基于服务器时间的时间维度中的数据:这种方法有时候是可取的,这个用法具体使用方法,在使用时候具体讨论。这里不多说。

 

    维度智能,其实说的是添加商业智能的时候,选择维度智能,也就自定义要添加的维度如何按照自己的需求实现智能,毕竟内置的商业智能使用范围有限。我们在添加商业智能的时候,除了上面说的几种智能维度,还有其他的智能维度,大致的思路都是一样,知识具体实现的过程不一;终究目的都是将维度根据自己的意愿实现所谓的智能化。

 

posted @ 2016-05-05 22:34  ABO-阿博  阅读(625)  评论(0编辑  收藏  举报