在 Mondrain Schema 中定义时间维度?

Posted

技术标签:

【中文标题】在 Mondrain Schema 中定义时间维度?【英文标题】:Defining time dimension in Mondrain Schema? 【发布时间】:2014-02-21 11:37:49 【问题描述】:

我正在尝试在蒙德里安模式中定义时间维度。在蒙德里安时间维度中,它需要 3 个级别类型必须是 YearsQuartersMonths

但我的表格只包含一个日期字段。那怎么可能呢?

我可以在Mondrian 中使用postgreSQL 查询吗?所以我可以使用 3 个查询从单个日期字段中选择 YearsQuartersMonth

【问题讨论】:

您不能将列year, quarter, month 添加到您的表中?或者基于这个表创建视图?蒙德里安可以使用视图。 不,因为它的标准,我有像 一样的想法来自单个字段。 蒙德里安有 view element 可以使用标准 SQL 定义视图。 我添加了视图,但结果是空白立方体。我在回答中写下了我的观点。 【参考方案1】:

创建只有一个日期列的简单表:

create table tmp_cube as (select generate_series('2011-01-01'::date, '2012-01-01'::date, '1 day')::date gs);

创建虚拟立方体:

<Schema name="New Schema1">
  <Cube name="Test" visible="true" cache="true" enabled="true">
    <Table name="tmp_cube" schema="public" alias="">
    </Table>
    <Dimension type="TimeDimension" visible="true" foreignKey="gs" name="Time Dimension">
      <Hierarchy name="New Hierarchy 0" visible="true" hasAll="true" primaryKey="gs">
        <View alias="test_view">
          <SQL dialect="generic">SELECT gs, extract(year from gs) as year, extract(quarter from gs) as quarter, extract(month from gs) as month FROM tmp_cube</SQL>
        </View>
      <Level name="Year" visible="true" column="year" type="Integer" internalType="int" uniqueMembers="false" levelType="TimeYears">
        </Level>
        <Level name="Quarter" visible="true" column="quarter" type="Integer" uniqueMembers="false" levelType="TimeQuarters">
        </Level>
        <Level name="Month" visible="true" column="month" type="Integer" uniqueMembers="false" levelType="TimeMonths">
        </Level>
      </Hierarchy>
    </Dimension>
    <Measure name="Count Rows" column="gs" aggregator="count" visible="true">
    </Measure>
  </Cube>
</Schema>

现在我在 Saiku 看到了:

【讨论】:

以上是关于在 Mondrain Schema 中定义时间维度?的主要内容,如果未能解决你的问题,请参考以下文章

Mondrain MDX 用于日期范围之间的记录,其中开始日期和结束日期是单独的列

Mondrian Schema - 计算的成员维度查找

SQL Power Architect Mondrian Schema:创建两个具有相同维度的多维数据集

Mondrian Schema Workbench 概念及常用参数

saikumondrian前奏之——立方体维度Schema的基本概念

如何在 Mondrian 4 Schema 中使用来自 PostgreSQL 的时间戳?