Мондриан, всички кубични мерки са празни

Използвам плъгина Saiku на Pentaho, за да анализирам куб. Въпреки че всички полета за измерване и измерване са видими, няма показани факти, всички клетки са празни. (Ако опцията „Не е празна“ е избрана в лентата с инструменти, Saiku връща „Няма резултат“, когато опцията не е избрана, се показва таблица, изброяваща правилно всички членове в колоните и редовете – само без стойности на клетки). Тъй като стойностите на членовете в колоните и редовете са правилни, знам, че Saiku чете правилно xml файла на куба и източника на данни MySQL. Мисля, че може да има някакъв проблем с посочените измервания, но не мога да намеря грешка (Няма грешки в конзолата или регистрационните файлове, които мога да видя). Обърнете внимание, че получавам този проблем без значение какви измерения избирам, когато кубирам в Saiku. Това е файлът със схемата на 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>

Някаква идея защо може да е това? Как мога да отстраня този проблем?


person BOENDAGGER    schedule 12.06.2014    source източник


Отговори (1)


Липсва ви атрибута primaryKey в йерархията. Елементът Dimension има атрибут ForeignKey, идентифициращ правилно колоната от таблицата с факти, но елементът Hierarchy не посочва първичен ключ от таблицата с измерения за извършване на свързването.

Като такива, всички съединения ще върнат 0 реда. (Нямах представа, че Mondrian дори ще приеме такава схема, тъй като бих очаквал условието за присъединяване да бъде неправилно формирано, докато тествам схемата)

person nsousa    schedule 12.06.2014
comment
Друго нещо: когато зададете hasAll на false за йерархия, винаги трябва да зададете и defaultMember. В противен случай ще се използва първият член на измерението и първият член се определя от естествения ред на членовете на йерархията. - person nsousa; 12.06.2014
comment
Благодаря, nsousa, случайно попаднах на резолюцията вчера. Бях проследил обучителен видеоклип, направен от самите Pentaho (youtube.com/watch?v=baC8dQMyp9E), където те не са посочили това поле и е неочаквано, че е необходимо (за хора, които са нови за Mondrian), тъй като човек би очаквал да се присъедини към първичния ключ на таблицата. Благодаря за изчерпателния отговор. - person BOENDAGGER; 13.06.2014