我刚刚开始研究蒙德里安。我很难理解层次结构和层次。 多维数据集中维度的级别和层次结构之间的区别是什么?为什么我们需要在构建Mondrian模式时在层次结构中包含级别?
感谢您阅读
答案 0 :(得分:6)
取自Pentaho Mondrian Documentation
一个例子 让我们看一个简单的维度。
<Dimension name="Gender" foreignKey="customer_id">
<Hierarchy hasAll="true" primaryKey="customer_id">
<Table name="customer"/>
<Level name="Gender" column="gender" uniqueMembers="true"/>
</Hierarchy>
</Dimension>
此维度由单个层次结构组成,该层次结构由名为Gender的单个级别组成。
维度的值来自customer表中的gender列。 “性别”列包含两个值“F”和“M”,因此“性别”维度包含成员[性别]。[F]和[性别]。[M]。
另一个例子显示了时间维度的例子:
以下是时间维度的示例:
<Dimension name="Time" type="TimeDimension">
<Hierarchy hasAll="true" allMemberName="All Periods" primaryKey="dateid">
<Table name="datehierarchy"/>
<Level name="Year" column="year" uniqueMembers="true" levelType="TimeYears" type="Numeric"/>
<Level name="Quarter" column="quarter" uniqueMembers="false" levelType="TimeQuarters"/>
<Level name="Month" column="month" uniqueMembers="false" ordinalColumn="month" nameColumn="month_name" levelType="TimeMonths" type="Numeric"/>
<Level name="Week" column="week_in_month" uniqueMembers="false" levelType="TimeWeeks"/>
<Level name="Day" column="day_in_month" uniqueMembers="false" ordinalColumn="day_in_month" nameColumn="day_name" levelType="TimeDays" type="Numeric"/>
</Hierarchy>
</Dimension>
另请注意,维度可以包含多个层次结构:
维度可以包含多个层次结构:
<Dimension name="Time" foreignKey="time_id">
<Hierarchy hasAll="false" primaryKey="time_id">
<Table name="time_by_day"/>
<Level name="Year" column="the_year" type="Numeric" uniqueMembers="true"/>
<Level name="Quarter" column="quarter" uniqueMembers="false"/>
<Level name="Month" column="month_of_year" type="Numeric" uniqueMembers="false"/>
</Hierarchy>
<Hierarchy name="Time Weekly" hasAll="false" primaryKey="time_id">
<Table name="time_by_week"/>
<Level name="Year" column="the_year" type="Numeric" uniqueMembers="true"/>
<Level name="Week" column="week" uniqueMembers="false"/>
<Level name="Day" column="day_of_week" type="String" uniqueMembers="false"/>
</Hierarchy>
</Dimension>
我们还可以在文档中简化简单模式:
<Schema>
<Cube>
<Dimension Gender>
<Hierarchy>
<Level Gender>
</Hierarchy>
</Dimension>
<Dimension Time>
<Hierarchy>
<Level Year/>
<Level Quarter/>
<Level Month/>
</Hierarchy>
<Hierarchy>
<Level Year/>
<Level Week/>
<Level Day/>
</Hierarchy>
</Dimension>
<Measure Unit Sales/>
<Measure Store Sales/>
</Cube>
</Schema>
答案 1 :(得分:3)
维度是层次结构列表(例如,包含日历和年级层次结构的时间维度)。
层次结构是级别列表(例如,具有年级和月级的日历)。
级别是成员列表(最终成员被组织成级别)。
您可以查看解释主要概念的MDX gentle introduction。
答案 2 :(得分:1)
我们通常创建维度层次结构以将数据向下钻取到特定的层次结构级别。如果您有位置层次结构,我们通常会有以下级别 - 国家,州,县/区等。
维杰。
答案 3 :(得分:0)
peantho Schema Workbench你可以说mondrian的修改版本,所以看一下用于创建Cubes的pentaho schema工作台的基本示例,这样在创建时你会自动以更容易的方式了解你的问题。