淺析 mondrian 模式文件 Schema


1、前言

前面幾篇文章一經介紹過saiku、模式文件和MDX的關系。通俗點說模式文件(Schema)就是一個xml,里面定義了一個虛擬立方體,共MDX查詢語言使用。

2、模式文件

Schema 最頂層

Cube 立方體,以事實表為中心,圍繞若干維度表

Table 事實表

Dimension 維度

Hierarchy 維度層次

Level 一個層次

Measure 度量

事例:

創建原始數據表,這些表參考:http://www.cnblogs.com/liqiu/p/5202708.html 里面的建表語句!

根據創建的數據表,我寫了一個模式文件:

<Schema name="SaleSchema">
  <Cube name="SalesCube">
    <Table name="sale">
    </Table>
    <Dimension type="StandardDimension" visible="true" foreignKey="cusid" highCardinality="false" name="dimCustomer">
      <Hierarchy visible="true" hasAll="true" allMemberName="allCustomer">
        <Table name="customer">
        </Table>
        <Level name="gender" visible="true" column="gender" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
        </Level>
      </Hierarchy>
    </Dimension>
    <Measure name="saleNumber" column="num" aggregator="sum" caption="NumTitle" visible="true">
    </Measure>
    <Measure name="saleAmount" aggregator="sum" caption="allSaleTitle" visible="true">
      <MeasureExpression>
        <SQL dialect="generic">
          <![CDATA[(unitprice*num)]]>
        </SQL>
      </MeasureExpression>
    </Measure>
  </Cube>
</Schema>

這里面使用了兩張表,事實表:sale和消費者表customer,其中sale表里面的cusid是customer表的主鍵

3、Table

這里指的是立方體里面的事實表,sale

4、維度

這里僅僅聲明了一個維度,消費者維度

    <Dimension type="StandardDimension" visible="true" foreignKey="cusid" highCardinality="false" name="dimCustomer">
      <Hierarchy visible="true" hasAll="true" allMemberName="allCustomer">
        <Table name="customer">
        </Table>
        <Level name="gender" visible="true" column="gender" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
        </Level>
      </Hierarchy>
    </Dimension>

里面有個維度層次,里面僅僅包含一個層次,性別:gender

5、指標

    <Measure name="saleNumber" column="num" aggregator="sum" caption="NumTitle" visible="true">
    </Measure>

是銷量指標,另外一個不做太多解釋了

6、執行:

select
       {[Measures].saleNumber,[Measures].saleAmount}
on columns,
       {([dimCustomer].[allCustomer])}
on rows
from [salesCube]

7、結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM