蒙德里安所有立方体措施都是空的

时间:2014-06-12 13:10:59

标签: pentaho mondrian saiku

我在Pentaho上使用Saiku插件来分析立方体。虽然所有维度和测量字段都是可见的,但没有显示任何事实,所有单元格都是空的。 (如果在工具栏中选择了"非空"选项,则Saiku返回"无结果",如果未选择该选项,则会在列和行中正确列出所有成员的表显示 - 只是没有单元格值)。因为列和行中的成员值是正确的,我知道Saiku正在正确读取多维数据集xml文件和MySQL数据源。我认为指定的测量可能存在一些问题,但我找不到任何错误(控制台或日志中没有错误,我可以看到)。请注意,无论在Saiku中使用何种尺寸,我都会遇到此问题。这是我使用schema workbench创建的Mondrian模式文件。

<Schema name="Test Small4">
<Cube name="Policy Cube" caption="A small test" visible="true" description="Policy data description" cache="true" enabled="true">
<Table name="fact_policy">
</Table>
<Dimension type="StandardDimension" visible="true" foreignKey="deductable_id" highCardinality="false" name="Deductable" caption="Caption: deductable">
  <Hierarchy visible="true" hasAll="false">
    <Table name="deductable">
    </Table>
    <Level name="Deductable Type" visible="true" column="type" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
    </Level>
    <Level name="Deductable Limit" visible="true" column="deductable_limit" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
    </Level>
    <Level name="Deductable Cap" visible="true" column="cap" type="Numeric" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
    </Level>
  </Hierarchy>
</Dimension>
<Dimension type="StandardDimension" visible="true" foreignKey="endorsement_id" highCardinality="false" name="Endorsement" caption="Caption: Endorsement">
  <Hierarchy visible="true" hasAll="true">
    <Table name="endorsement">
    </Table>
    <Level name="Endorsement Type" visible="true" column="type" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
    </Level>
    <Level name="Endorsement Number" visible="true" column="number" type="Numeric" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
    </Level>
    <Level name="Endorsement Effective Date Regular" visible="true" column="effective_date" type="Date" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
    </Level>
  </Hierarchy>
</Dimension>
<Measure name="Quantity Unique Rate" column="rate" datatype="Numeric" aggregator="distinct-count" visible="true">
</Measure>
<Measure name="Average Rate" column="rate" datatype="Numeric" aggregator="avg" visible="true">
</Measure>
<Measure name="Average Premium" column="premium" datatype="Numeric" formatString="#,###" aggregator="avg" visible="true">
</Measure>
<Measure name="Num Rates" column="rate" datatype="Integer" aggregator="distinct-count" visible="true">
</Measure>
<Measure name="String test" column="rate" datatype="String" aggregator="distinct count" visible="true">
</Measure>
<Measure name="Sum test" column="system_id" datatype="Integer" aggregator="sum" visible="true">
</Measure>
<Measure name="Test" column="system_id" datatype="Integer" formatString="Standard" aggregator="count" visible="true">
</Measure>
<CalculatedMember name="Premium Rate dif" formula="[Measures].[Average Rate]-[Measures].[Average Premium]" dimension="Measures" visible="true">
</CalculatedMember>

知道为什么会这样吗?我该如何调试此问题?

1 个答案:

答案 0 :(得分:2)

您错过了层次结构上的primaryKey属性。 Dimension元素具有foreignKey属性,可以正确识别事实表中的列,但Hierarchy元素不会从维度表中指定primaryKey来执行连接。

因此,所有连接都将返回0行。 (我不知道Mondrian甚至会接受这样的模式,因为我预计在测试模式时连接条件会出错)