具有多个级别的雪花模式
Posted
技术标签:
【中文标题】具有多个级别的雪花模式【英文标题】:Snowflake schema with multiple levels 【发布时间】:2013-04-04 12:14:41 【问题描述】:我的架构中的一个维度是建模为具有以下表结构的雪花架构:
fact table -> criteria_value -> criteria -> Domain
蒙德里安模式:
<Dimension type="StandardDimension" foreignKey="id_value" highCardinality="false" name="Researched Value">
<Hierarchy name="Researched Value" hasAll="true" primaryKey="id_va" primaryKeyTable="criteria_value">
<Join leftAlias="criteria_value" leftKey="id_va" rightAlias="criteria" rightKey="id_c">
<Table name="criteria_value">
</Table>
<Join leftAlias="criteria" leftKey="id_c" rightAlias="domain" rightKey="id_domain">
<Table name="criteria" alias="">
</Table>
<Table name="domain" alias="">
</Table>
</Join>
</Join>
<Level name="Domain" table="domain" column="desc_d_Eng" type="String" uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="Criteria" table="criteria" column="desc_c_Eng" uniqueMembers="false">
</Level>
<Level name="Value" table="criteria_value" column="desc_va_Eng" uniqueMembers="false">
</Level>
</Hierarchy>
</Dimension>
问题是在 Mondrian Workbench 中尝试使用 MDX 查询时:
[Researched Value].[Mobile services].operator ON ROWS
我可以看到对应的值 (“Mobile services”和“operator”分别是“Domain”和“Criteria”级别的第一个成员
但是当尝试例如:
[Researched Value].[Mobile services].internet ON ROWS
我明白了:
蒙德里安错误:MDX 对象'[研究值]。[移动 services].[internet]' 在多维数据集“Recherche”中找不到
虽然“互联网”是“标准”级别的成员(但不是第一个)
为什么我看不到我关卡的所有成员?
【问题讨论】:
【参考方案1】:我认为您的 MDX 标识符中缺少关卡名称。正确的语法是:
[Hierarchy Name].[Level Name].[Member Name] (.[Child Member Name])
试试这个:
[Researched Value].[Criteria].[Internet]
【讨论】:
以上是关于具有多个级别的雪花模式的主要内容,如果未能解决你的问题,请参考以下文章