[英]Pentaho Mondrian using aggregate tables
我有Pentaho Mondrian的xml架构描述。 看起来像这样:
<Dimension foreignKey="dt" name="dt" type="TimeDimension">
<Hierarchy allMemberName="All" hasAll="true" name="Hierarchy" primaryKey="dt" visible="true">
<View alias="dt_view">
<SQL dialect="generic">select distinct "dt",date_part('year', "dt")::integer AS year, date_part('month', "dt")::integer AS month, date_part('day', "dt")::integer AS day from "world_steel_production"."world_steel_production_data"
</SQL>
</View>
<Level captionColumn="year" column="year" hideMemberIf="Never" levelType="TimeYears" name="Years" type="Integer" uniqueMembers="false"/>
<Level column="month" formatter="capsidea.MemberMonthFormatter" hideMemberIf="Never" levelType="TimeMonths" name="Month" type="Integer" uniqueMembers="false"/>
</Hierarchy>
</Dimension>
<Dimension foreignKey="obj" name="Index">
<Hierarchy allMemberName="All" hasAll="true" name="name_ru" primaryKey="key" visible="true">
<Table name="world_steel_production_dict_obj" schema="world_steel_production"/>
<Level column="key" nameColumn="name_ru" parentColumn="parent_key" hideMemberIf="Never" levelType="Regular" name="Level" type="Integer" uniqueMembers="true"/>
</Hierarchy>
</Dimension>
<Measure aggregator="sum" column="vl" name="Value" visible="true"/>
</Cube>
我们的时间维度<Dimension foreignKey="dt" name="dt" type="TimeDimension">
包含两个级别:“年”和“月”当我选择级别“年”时,蒙德里安按年份汇总数据。
看起来不错,但是表world_steel_production_data在数据中具有两个动态级别,这些动态级别定义了列dl(1年动态和4月动态)
当我在1980年按年份汇总数据时,这种情况包含具有年份和月份动态的数据。
我已阅读( http://mondrian.pentaho.com/documentation/aggregate_tables.php),Pentaho可以使用聚合表,并且我想使用它们来拆分我的月份和年份动态。
我已经创建了两个表来汇总表
create or replace view world_steel_production.world_steel_production_data_view_year
as
select *
from world_steel_production.world_steel_production_data
where dl = 1
和
create or replace view world_steel_production.world_steel_production_data_view_month
as
select *
from world_steel_production.world_steel_production_data
where dl = 4
但是,现在我正在徘徊如何在xml模式定义中对Pentaho说:将第一个视图用于年份动态,将第二个视图用于月份动态?
或者,也许还有另一种方式可以分解年份和月份的动态?
我想我已经找到了解决方案。 蒙德里安(Mondrian)具有封闭表(Closure table)( http://mondrian.pentaho.com/documentation/schema.php#Closure_tables )之类的东西。 在此表上,您可以定义如何在层次结构维度中进行汇总。
我在这种情况下所做的事情:
如您所见,由于我的world_steel_production_time_hierarchy根本没有层次结构(time_id = parent_time_id),因此我已经填写了关闭表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.