none
从Essbase转入SSAS初学者的几个基础问题,希望前辈赐教,同时也帮助很多其它初学者! RRS feed

  • 问题

  • 仅增对SQL server 2008 版本,其它版本情况不太清楚。

    1,维度成员的一元运算符设计:
     1.1 维度有层次结构和父子维度。如果是层次结构,最底层的成员一元运算符可以在属性里面有个UnaryOperatorColumn的选项设置,如果是非最底层的怎么设置???
     
     
     
     1.2 如果是父子维度,又如何加载一元运算符?
     
     
     
     1.3 微软官方例子里面很少有维度的一元运算符设置,请有项目经验的朋友赐教是否在项目中一元运算符都是默认+,如果都是默认,那怎么满足有-,/,*,的聚合需求?
     
    2, 回写
     2.1 回写概念,个人理解是:业务人员或者管理人员对维度的动态的,正对特定成员的移动,删除,修改操作。不知道理解正确不?如不是请讲解下。多谢!
     
     
    3, 维度计算顺序和二次计算
     3.1 Essbase里面two-pass计算的问题,相信每个OLAP工具都有,在涉及基于其他维度来计算百分比,同比,环比的时候,SSAS怎么实现计算准确性?
     
     3.2 SSAS 里面是否存在维度的计算顺序问题(因为维度如果设置了一元运算操作符,那么计算顺序的不同,会导致结果不同)?
     
    4, 双击点开多维数据集中的Cube, 里面有个《操作》(英文 Action)的选项卡,,请问这个选项卡是干什么的???


    希望大家能够帮我解决这些问题,,自学真的很慢,如果有相应资料,网站,论坛大家都可以推荐给我。。最后是讲解原理性的东西,,大家共同进步,QQ:422296020

     

    2010年9月2日 2:43

全部回复

  • 先自己顶一个, 希望有人能够帮助呀

    2010年9月2日 5:48
  • Essbase 没有用过,我只知道它和 SSAS 同样使用 MDX 作为核心技术。我试着回答你的以上问题吧:

    1)维度成员的一元运算符设计, SSAS 中也有类似的概念,但只是对 父子关系的Attribute 来说的, 不能对hierarchies.

    2) 一元运算符只能用在父子纬度的Attribute 上,加载是通过修改UnaryOperatorColumn 里的值实现的;

    4) 回写, (Write Back), 你的理解大致正确。简单地说就是通过客户端工具直接修改Cube 中数据,但通常 Writeback 是针对 Fact 操作的,即使对Dimension 的操作也可以。

    5) 在 SSAS 开发中需要大量使用 MDX来建立 Calculated Member (计算成员), 它们的计算顺序可以人工任意调整;

    6) Actions, 可以用来对一个 Cell 定义其他的行为:钻取、报表、URL连接等,即当鼠标定位到一个具体的 Cell 的时候,能自动增加一个 Action 的菜单来选择其他的错做。截止到目前为止,Action 这个功能只能在 SQL Server 自带的 Cube Browser 中使用。

    从你的问题来看总的感觉是 Essbase 和 SSAS 的概念区别还是很大的,只有同时精通两个的人才能彻底回答你的问题。 HTH.

    2010年9月2日 10:57
    版主
  • <form id="aspnetForm" action="edit" enctype="application/x-www-form-urlencoded" method="post">
    谢谢你的回答,首先
    我不知道自己对ssas理解正确不。但是在聚合的时候,子向父聚合,父向祖父聚合, 但是聚合应该有规则。如下
    Computer
             Laptop
                      HP (+)
                      IBM (+)
                      Acer (-)
             Desktop
                      。。。。
                  
    我设计了页级别的粒度聚合规则,比如HP(+), IBM(+),Acer(-)。 这个可以在对应维度属性的unaryOperatorColumn的属性设置。
    Question: 如果我想Computer = Laptop *Desktop,我该怎么设置?
    按照我理解方法:
    1)Laptop设置&amp;#43;, 给desktop设置*。 但是怎么设置呢?
    2),重新给Computer 成员设计计算方法,比如在脚本里面设计定死:Computer = Laptop *Desktop,用以覆盖聚合时候的Computer= Laptop+DeskTop。
    不知道我描述清楚没有,能否留下联系方式我ping你。期待!
    </form>
    2010年9月3日 2:29
  • 基本上清楚你的描述。

    完全取决与你的 Dimension 表的结构了。我不知道你的维度表的结构,假如 Computer 和 Laptop/ Desktop 是不同的 Attribute, 你可以设定Computer Attribute 是 Parent Attribute, 然后你可以使用" *"

    SQL Server 2008 支持 + , -, * ,/, ~, <<Factor>> 六种 unary operator。

    另外你可以使用  CustomRollupColumn 属性来实现类似的功能。  My Email:  pfeng@bridata.ca

     

    2010年9月5日 11:49
    版主
  • 完全取决与你的 Dimension 表的结构了。我不知道你的维度表的结构,假如 Computer 和 Laptop/ Desktop 是不同的 Attribute, 你可以设定Computer Attribute 是 Parent Attribute, 然后你可以使用" *"-----  问题是我不知道在哪里设置为*?

    2010年9月7日 9:43
  • 这些操作符实际上就是 Attribute 的member,换一句话说,这些操作符就是 UnaryOperatorColumn  那一字段的值。
    2010年9月16日 2:02
    版主