Difference between revisions of "Tutorial/OLAP example"

From TempusServa wiki
Jump to navigation Jump to search
old>Admin
m (20 revisions imported)
 
(8 intermediate revisions by 2 users not shown)
Line 24: Line 24:
=== Basic information ===
=== Basic information ===


* Name / display: sample1
* Name display: sample1
* Cube header:  Report sample1
* Cube header:  Report sample1


=== Cube definition ("Cube Schema XML") ===
=== Cube definition ("Cube Schema XML") ===


  <Cube name="sample1cube">
For further help to designing schemas please refer to the following ressources
    <Table name="data_changemanagement"/>
* http://mondrian.pentaho.com/documentation/schema.php
    <Dimension name="Scope" foreignKey="TASKTYPE">
 
      <Hierarchy hasAll="true" primaryKey="LookupID">
<syntaxhighlight lang="xml">
      <Table name="formfieldlookup"/>
<Cube name="sample1cube">
        <Level name="Type" column="Value" uniqueMembers="true"/>
  <Table name="data_changemanagement"/>
      </Hierarchy>
  <Dimension name="Scope" foreignKey="TASKTYPE">
    </Dimension>
    <Hierarchy hasAll="true" primaryKey="LookupID">
    <Dimension name="Type" foreignKey="TYPE">
    <Table name="formfieldlookup"/>
      <Hierarchy hasAll="true" primaryKey="LookupID">
      <Level name="Type" column="Value" uniqueMembers="true"/>
      <Table name="formfieldlookup"/>
    </Hierarchy>
        <Level name="Type" column="Value" uniqueMembers="true"/>
  </Dimension>
      </Hierarchy>
  <Dimension name="Type" foreignKey="TYPE">
    </Dimension>
    <Hierarchy hasAll="true" primaryKey="LookupID">
    <Dimension name="Status" foreignKey="StatusID">
    <Table name="formfieldlookup"/>
      <Hierarchy hasAll="true" primaryKey="StatusID">
      <Level name="Type" column="Value" uniqueMembers="true"/>
      <Table name="formstatus"/>
    </Hierarchy>
        <Level name="Type" column="Status" uniqueMembers="true"/>
  </Dimension>
      </Hierarchy>
  <Dimension name="Status" foreignKey="StatusID">
    </Dimension>
    <Hierarchy hasAll="true" primaryKey="StatusID">
    <Dimension name="Period" type="TimeDimension">
    <Table name="formstatus"/>
      <Hierarchy name="Periode" hasAll="true" allMemberName="All period">
      <Level name="Type" column="Status" uniqueMembers="true"/>
        <Table name="data_changemanagement"/>
    </Hierarchy>
        <Level name="Aar" levelType="TimeYears" uniqueMembers="true">
  </Dimension>
          <KeyExpression>
  <Dimension name="Period" type="TimeDimension">
            <SQL dialect="mysql">Year(CreatedAt)</SQL>
    <Hierarchy name="Periode" hasAll="true" allMemberName="All period">
            <SQL dialect="generic">YEAR</SQL>
      <Table name="data_changemanagement"/>
          </KeyExpression>
      <Level name="Aar" levelType="TimeYears" uniqueMembers="true">
        </Level>
        <KeyExpression>
        <Level name="Kvartal" uniqueMembers="false" levelType="TimeQuarters">
          <SQL dialect="mysql">Year(CreatedAt)</SQL>
          <KeyExpression>
          <SQL dialect="generic">YEAR</SQL>
            <SQL dialect="mysql">Quarter(CreatedAt)</SQL>
        </KeyExpression>
            <SQL dialect="generic">Quarter</SQL>
      </Level>
          </KeyExpression>
      <Level name="Kvartal" uniqueMembers="false" levelType="TimeQuarters">
        </Level>
        <KeyExpression>
        <Level name="Maaned" uniqueMembers="false" levelType="TimeMonths">
          <SQL dialect="mysql">Quarter(CreatedAt)</SQL>
          <KeyExpression>
          <SQL dialect="generic">Quarter</SQL>
            <SQL dialect="mysql">Month(CreatedAt)</SQL>
        </KeyExpression>
            <SQL dialect="generic">Month</SQL>
      </Level>
          </KeyExpression>
      <Level name="Maaned" uniqueMembers="false" levelType="TimeMonths">
        </Level>
        <KeyExpression>
      </Hierarchy>
          <SQL dialect="mysql">Month(CreatedAt)</SQL>
    </Dimension>
          <SQL dialect="generic">Month</SQL>
    <Measure name="Revision" column="Revision" aggregator="sum" formatString="Standard"/>   
        </KeyExpression>
    <Measure name="Estimate" column="ESTIMATTIMER" aggregator="sum" formatString="Standard"/>   
      </Level>
    <Measure name="Realized" column="REALISERETTIMER" aggregator="sum" formatString="Standard"/>   
    </Hierarchy>
  </Cube>
  </Dimension>
  <Measure name="Revision" column="Revision" aggregator="sum" formatString="Standard"/>   
  <Measure name="Estimate" column="ESTIMATTIMER" aggregator="sum" formatString="Standard"/>   
  <Measure name="Realized" column="REALISERETTIMER" aggregator="sum" formatString="Standard"/>   
</Cube>
</syntaxhighlight>


=== MDX query ("Cube Query MDX") ===
=== MDX query ("Cube Query MDX") ===


  select
For further help to designing queries please refer to the following ressources
    NON EMPTY {([Measures].[Estimate],[Measures].[Realized])} ON COLUMNS,
* http://technet.microsoft.com/en-us/library/ms145971.aspx
    NON EMPTY {([Period],[Type],[Status])} ON ROWS
  from [sample1cube]


<syntaxhighlight lang="mysql">
SELECT
  NON EMPTY {([Measures].[Estimate],[Measures].[Realized])} ON COLUMNS,
  NON EMPTY {([Period],[Type],[Status])} ON ROWS
FROM [sample1cube]
</syntaxhighlight>


== Results ==
== Results ==
Line 91: Line 100:




[File:olap_sample.PNG]
[[File:Sample_olap.PNG]]
 
[[File:Sample_olap_expanded.PNG]]

Latest revision as of 11:55, 10 December 2021

Example

We have a solution

  • Change management [changemanagement]

The solution contains the following lookup fields

  • Scope [TYPE]
  • Type [TASKTYPE]

It also has some decimal values

  • Estimate [ESTIMATE]
  • Realized [REALIZED]

In our reporting we want to see distributions by

  • A period hierachy: Year / Quarter / Month
  • Categorieres by Scope, Type and Status

Setting up the cube

A new OLAP cube is set up in: "Integration" > "OLAP cubes" > "Add"


Basic information

  • Name display: sample1
  • Cube header: Report sample1

Cube definition ("Cube Schema XML")

For further help to designing schemas please refer to the following ressources

<Cube name="sample1cube">
  <Table name="data_changemanagement"/>
  <Dimension name="Scope" foreignKey="TASKTYPE">
    <Hierarchy hasAll="true" primaryKey="LookupID">
    <Table name="formfieldlookup"/>
      <Level name="Type" column="Value" uniqueMembers="true"/>
    </Hierarchy>
  </Dimension>
  <Dimension name="Type" foreignKey="TYPE">
    <Hierarchy hasAll="true" primaryKey="LookupID">
    <Table name="formfieldlookup"/>
      <Level name="Type" column="Value" uniqueMembers="true"/>
    </Hierarchy>
  </Dimension>
  <Dimension name="Status" foreignKey="StatusID">
    <Hierarchy hasAll="true" primaryKey="StatusID">
    <Table name="formstatus"/>
      <Level name="Type" column="Status" uniqueMembers="true"/>
    </Hierarchy>
  </Dimension>
  <Dimension name="Period" type="TimeDimension">
    <Hierarchy name="Periode" hasAll="true" allMemberName="All period">
      <Table name="data_changemanagement"/>
      <Level name="Aar" levelType="TimeYears" uniqueMembers="true">
        <KeyExpression>
          <SQL dialect="mysql">Year(CreatedAt)</SQL>
          <SQL dialect="generic">YEAR</SQL>
        </KeyExpression>
      </Level>
      <Level name="Kvartal" uniqueMembers="false" levelType="TimeQuarters">
        <KeyExpression>
          <SQL dialect="mysql">Quarter(CreatedAt)</SQL>
          <SQL dialect="generic">Quarter</SQL>
        </KeyExpression>
      </Level>
      <Level name="Maaned" uniqueMembers="false" levelType="TimeMonths">
        <KeyExpression>
          <SQL dialect="mysql">Month(CreatedAt)</SQL>
          <SQL dialect="generic">Month</SQL>
        </KeyExpression>
      </Level>
    </Hierarchy>
  </Dimension>
  <Measure name="Revision" column="Revision" aggregator="sum" formatString="Standard"/>   
  <Measure name="Estimate" column="ESTIMATTIMER" aggregator="sum" formatString="Standard"/>   
  <Measure name="Realized" column="REALISERETTIMER" aggregator="sum" formatString="Standard"/>   
</Cube>

MDX query ("Cube Query MDX")

For further help to designing queries please refer to the following ressources

SELECT
  NON EMPTY {([Measures].[Estimate],[Measures].[Realized])} ON COLUMNS,
  NON EMPTY {([Period],[Type],[Status])} ON ROWS
FROM [sample1cube]

Results

The cube is acccesed via this URL (or press "test" form the OLAP overview) http://YOUR_DOMAIN/TempusServa/olapview.jsp?query=sample1


Sample olap.PNG

Sample olap expanded.PNG