2014-06-12 27 views
0

我使用Pentaho上的Saiku插件來分析立方體。雖然所有尺寸和測量字段都可見,但沒有顯示任何事實,所有單元都是空的。 (如果在工具欄中選擇了「非空」選項,Saiku返回「無結果」,當沒有選擇該選項時,將顯示列表和行中正確列出所有成員的表格 - 只是沒有單元格值)。由於列和行中的成員值是正確的,我知道Saiku正在正確讀取多維數據集xml文件和MySQL數據源。我認爲可能有一些問題與指定的測量,但我找不到任何錯誤(沒有控制檯或日誌中的錯誤,我可以看到)。請注意,無論我在Saiku中進行多維數據集時選擇何種維度,都會遇到此問題。這是我用架構工作臺創建的Mondrian架構文件。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> 

任何想法,這可能是爲什麼?我如何去調試這個問題?

回答

2

您缺少層次結構上的primaryKey屬性。 Dimension元素具有正確標識事實表中列的foreignKey屬性,但Hierarchy元素未指定維度表中的primaryKey來執行連接。

因此,所有聯接將返回0行。 (我不知道蒙德里安甚至會接受這樣的模式,因爲我期望在測試模式時連接條件變形)

+1

另一件事:當您在層次結構上將hasAll設置爲false時,您應該始終將defaultMember設置爲好。否則,將使用該維的第一個成員,並且第一個成員由層次結構成員的自然順序定義。 – nsousa

+0

謝謝nsousa,我昨天偶然發現了這個決議。我一直聽從Pentaho自己製作的教程視頻(http://www.youtube.com/watch?v=baC8dQMyp9E),他們沒有指定這個領域,而且出乎意料的是它是需要的(對於剛入門的人來說)看到人們期望加入桌子的主鍵。感謝您的詳細解答。 – BOENDAGGER

相關問題