我自己知道点却总觉得说不太明白?求高人指点:,如果"[Product].[Product]"则有All这个成员,如果"[Product].[Product].[Product]",那么就没有All这个成员。

0
SSASSBS的AdventureWorks多维数据库,Product是维度名,里面有
"Product by Category"的层级结构:Category、SubCategory、Product。

一直没明白".."这个如何理解,和"."有何不同?

根据查询出来的结果可以理解,如果"."则有All这个成员,如果"..",那么就没有All这个成员。

而且,Product中建的层级结构名为"Product by Category",而".."也就等同于"..",觉得好奇怪,MDX也不报错?

我自己知道点却总觉得说不太明白?求高人指点
已邀请:
1

BIWORK - 热衷于微软BI技术,技术架构和解决方案! 2014-01-09 回答

.. -
维度名称.层次结构.级别名称
Dimension.Hierarchy.Level

"." -维度名称.层次结构 下面 ALL 是指 ALL 这个级别。ALL 这个级别上的成员叫做 ALL Products.

并且你看到的 . 这个是属性层次结构。
. 这个是自定义层次结构 .. 里的 Product 是级别。

..
维度名称.属性层次结构.级别名称

..
维度名称.自定义层次结构.级别名称

它们对应的都是 Product 维度中 Product 属性下的成员,所以这两个级别下的成员应该都是一致的。

所以你可以再看看这两篇文章 -
http://www.cnblogs.com/biwork/ ... .html
http://www.cnblogs.com/biwork/p/3486240.html

这两篇文章从 MDX 查询的角度和 SSAS 中建立维度和层次结构的角度都提及到了属性层次结构,自定义层次结构,属性等这些概念。
0

choc - 终于找到组织了,学习BI中 2014-01-10 回答

你的这2篇博文我都看过,但对于什么叫“属性层次结构”不是太明白?
0

BIWORK - 热衷于微软BI技术,技术架构和解决方案! 2014-01-10 回答

@choc 博客里面我解释了属性层次结构,你可以再揣摩一下下面这些意思 -
部署之后可以看到每一个维度属性的 Name Column 展示出来的信息了,并且注意在 SSAS 中有这样的一个概念 - 维度中的属性实际上指的属性层次结构,每一个属性层次结构都包含两层。第一层是以 ALL 为代表的成员,第二层是以各个属性值表示的成员。ALL 表示的就是对下面所有属性的一个聚合,在和度量值结合起来看就会很容易理解的。

再说简单一点,比如 Product 维度中有属性 Category, Subcategory 那么默认在创建 Product 维度时就会为这些属性创建一个默认的层次结构 ,比如 Category 就会创建一个 ALL 层次,然后 ALL 层次下面的成员就是 Category 在实际表中的那些值 - Bikes, Clothing 等.
Category 属性层次结构
ALL -
- Bikes
- Clothing
- 其它

也就是每一个属性都会有一个由 ALL 层次和它们值本身构成的一个层级,总共两层。

如果还是不能理解的话,最好动手实际操作一遍从数据库维度属性到创建SSAS 维度,中间这个概念的转换过程就是你对它的理解过程 - 因为我也是这么理解过来的,所以你可以借鉴一下。
0

choc - 终于找到组织了,学习BI中 2014-01-10 回答

嗯,我一步步走过来,都自己动手操作了的

" 比如 Product 维度中有属性 Category, Subcategory 那么默认在创建 Product 维度时就会为这些属性创建一个默认的层次结构 ,比如 Category 就会创建一个 ALL 层次,然后 ALL 层次下面的成员就是 Category 在实际表中的那些值 - Bikes, Clothing 等.
Category 属性层次结构
ALL -
    []Bikes[/][]Clothing[/][]其它[/]
"

这个我完全理解,我通过SSAS维度的浏览器就可以看到

问题是.后面再加 不容易理解


.和..(维度名称.自定义层次结构.级别名称)我很容易理解。

我的疑问主要在于:
(1)用户属性层次结构,我能看到的只有两层:比如 Category 就会创建一个 ALL 层次,然后 ALL 层次下面的成员就是 Category 在实际表中的那些值 - Bikes, Clothing 等.

后面再如何引用级别?
(2)既然已经存在属性层次结构,那么为何要定义用户自定义层次结构?
0

choc - 终于找到组织了,学习BI中 2014-01-10 回答

我自己上网查了点资料.
对于".."完全理解了

用...members、...members、..members、..members这四者容易理解些。

我们可以这么用:...members,也可以这么用...members,还可以这么用...members。但是没法这么用:...members

用户属性层次结构只有2层,再“.”就是取All下面一级的数据,而且通过用户属性层次结构后面再“.”的属性名只能与前面属性层次结构的名字完全一样,因此可以这么用:"..",也可以这么用
...members。但是这样就不行了:...members ,也没有任何意义。


但是至于...members和...members优缺点和适用场景等不太清楚了
0

BIWORK - 热衷于微软BI技术,技术架构和解决方案! 2014-01-10 回答

...members - 这个使用的自定义层次结构
...members - 这个使用的是属性层次结构

尽管看上去查询的 MEMBERS 是相同的,但是两者是完全不一样的概念。

...members 这个自定义的层次结构不仅仅可以访问到 Category 的成员,而且还可以访问到 Subcategory 和 Product 的成员。你可以看看我 MDX 博客中的层次结构那一章,成员是可以导航的。

但是对于 ...members这个属性层次结构来说,它就只包含了 Category 的成员。

但是本质上 ...members 这个自定义层次结构是不存在的,它实际上引用的是属性层次结构中的成员。具体内容也可以参考我博客里提到元组和局部元组里面的内容,可以看到自定义层次结构的成员是如何引用属性层次结构中的成员的。
0

BIWORK - 热衷于微软BI技术,技术架构和解决方案! 2014-01-10 回答


既然已经存在属性层次结构,那么为何要定义用户自定义层次结构?


比方说属性层次结构中有1000W个成员,全部拖出来就是1000W条与事实表的聚合。
...Members

通过自定义层次结构,比如 Member by Region

Member by Region - Hierarchy Name
Province - Level 1
City - Level2
Member - Level3

...&.Members

BJ 下面可能只有50W条成员信息, 并且完全可以通过具体的成员关联到其它的维度属性比如知道这个成员是哪个省份的,是哪个城市的。

但是像这个属性层次结构 - ...Members 你直接是做不到的。

要回复问题请先登录注册