我刚刚开始研究蒙德里安。我很难理解层次结构和级别。多维数据集中的维度的级别和层次结构之间有什么区别?为什么我们在构建蒙德里安模式时需要在层次结构中具有级别?
谢谢阅读
我刚刚开始研究蒙德里安。我很难理解层次结构和级别。多维数据集中的维度的级别和层次结构之间有什么区别?为什么我们在构建蒙德里安模式时需要在层次结构中具有级别?
谢谢阅读
一个例子 让我们看一个简单的维度。
<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”列包含两个值,“F”和“M”,因此 Gender 维度包含成员 [Gender].[F] 和 [Gender].[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>
维度是层次结构的列表(例如,具有日历和年份层次结构的时间维度)。
层次结构是级别列表(例如,具有年和月级别的日历)。
级别是成员列表(最终成员被组织成级别)。
你可以看看这个解释主要概念的MDX 温和介绍。
我们通常创建维度层次结构以将数据向下钻取到特定的层次结构级别。如果您有位置层次结构,我们通常会有以下级别 - 国家、州、县/区等。
维杰。
peantho Schema Workbench 是您可以说是 mondrian 的修改版本,因此请查看用于创建多维数据集的 pentaho 模式工作台的基本示例,以便在创建时您将自动以更轻松的方式了解您的问题。