微软BI 之SSAS 系列 - 自定义的日期维度设计( 三 )


然后选择其它的相应的属性,这里面基本上都是选择的数值类型的属性,因为我们一会还要修改它们,为他们配置相应的 Name- 提供信息标签 。我们同时为这些属性选择好相应的Type,如下图所示 。
修改维度名称 Date ,那么保存后就可以看到一个维度和它的维度属性了 。
Date 维度它的类型会自动设置为 Time 的,不是 Time 类型的维度在 MDX 的查询中有很多时间函数可能就无法使用了 。并且在 SSAS Cube 的处理过程中,就不会把这个维度当作特殊的时间维度去考虑,因此这里会自动设置为 Time 类型 。
这样的结构就是一个维度和它下面的维度属性,如果仅这样部署到 SSAS 分析服务中,我们将看到的是一堆数字 KEY 表示的信息,那么这些数据就失去了"信息"的意义 。
因此我们需要按照这个图来修改每一个属性,为它们指定相应的 NAME ,这样相当于为这个数字添上了一个标签 。
如上图所示,下图中的这个属性,它的 Key就是,它的Type 是 Year, 它的 Name 是Year Name 。
按照上面的配置修改完维度属性之后,也将名字改的简单一些 。
部署之后可以看到每一个维度属性的 Name展示出来的信息了,并且注意在 SSAS 中有这样的一个概念 - 维度中的属性实际上指的属性层次结构,每一个属性层次结构都包含两层 。第一层是以 ALL 为代表的成员,第二层是以各个属性值表示的成员 。ALL 表示的就是对下面所有属性的一个聚合,在和度量值结合起来看就会很容易理解的 。
维度其实就是属性和层次结构组成的,但是除了上面的属性层次结构之外,还包括下面的用户自定义层次结构 。那么这种主要是根据用户的需求来决定的,比如用户通常会根据年来聚合,或者再细看季度方面的数据,然后再是月或者天 。因此下面创建两个日期自定义层次结构,一个是自然年度的,一个是财年年度的层次结构 。
默认情况下,各个属性是和维度主 KEY 关联的,那么这样在层次结构关系中可能每次的上下次层次聚合都需要通过 Date Key 来进行关联,比如说不能通过 Month 来直接找到季度方面的成员,也不能通过年来找到具体季度的成员,因此需要对属性之间的关系做出一定的调整,提高 SSAS 处理属性聚合时的效率 。
修改完了之后的属性关系就更加合理一些 。
创建好的自定义属性层级关系,它的导航结构和上图的设计是一致的,注意到它也有一个 ALL 级别 。
实际上刚才我们设计的这些个属性我们之前也一直强调过,是由两部分组成的,一部分是自身的 KEY,另一部分是 NAME 来增强了对它们自身的解释 。下面描述了这些属性的 NAME 匹配关系 。
这个是财年层次结构的展开效果 。

微软BI 之SSAS 系列 - 自定义的日期维度设计

文章插图
财年 KEY 和 NAME 的对应关系 。
但是在自然的属性层次结构中,我们看到 MONTH NAME 下面的成员顺序不正确,一月份应该是,但是 April 却排到最前面去了 。虽然这里的成员顺序不会影响我们数据分析,但是人们更加希望能够按照约定俗成的方式更自然的方式来展现,这样更符合我们的习惯 。
因此需要编辑属性关系,我们之前偷偷加了一个属性 MonthOf Year 但是一直没有用到,但是在这里就可以用上了 。
绑定的属性关系中,可以看到 Month Name 又将 MonthOf Year 这个属性关联成它自己的一种属性了 。
Month Name 排序之前按照 Key 排序,Key 就是 Month Name 自身的英语月的排序,那么 April 肯定是显示在第一个的位置了 。
注意这里要使用Key 排序,选择 MonthOf Year 。
由于 MonthOf Year 这个属性只是用来做排序用的,因此这个属性层次结构是没有必要展示在客户端的,也没有必要作为一个属性出现,因此禁用浏览,也禁用变成层次结构 。