Определение временного масштаба в схеме Mondrain?

Я пытаюсь определить измерение времени в схеме Mondrian. В измерении времени Мондриана требуется трехуровневый тип: Years, Quarters, Months.

Но моя таблица содержит только одно поле даты. Так как это возможно?

Могу ли я использовать postgreSQL-запрос в Mondrian? Поэтому я могу использовать 3 запроса для выбора Years, Quarters and Month из одного поля даты.

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>

Теперь я вижу в Сайку:

licensed under cc by-sa 3.0 with attribution.