Простой Olap Cube и простой запрос MDX

У меня есть образец схемы звезды, созданный таким образом:

author (id, name)
book (id, name)
sample_fact_table (id, authorfk, bookfk, quantity)

где obiouvsly authorfk - это FK для author.id, а bookfk - это FK для book.id.

Размеры: "автор", "книга". Мера это "количество".

Я сделал эту конфигурацию для куба, используя инструмент Pentaho Schema Workbench:

<Schema name="MySchema">
  <Dimension type="StandardDimension" visible="true" name="Author">
    <Hierarchy visible="true" hasAll="true" allMemberName="All Authors" primaryKey="id">
      <Table name="author">
      </Table>
      <Level name="Name" visible="true" table="author" column="id" nameColumn="name" uniqueMembers="false">
      </Level>
    </Hierarchy>
  </Dimension>
  <Dimension type="StandardDimension" visible="true" name="Book">
    <Hierarchy visible="true" hasAll="true" allMemberName="All Books" primaryKey="id">
      <Table name="book">
      </Table>
      <Level name="Name" visible="true" table="book" column="id" nameColumn="name" uniqueMembers="false">
      </Level>
    </Hierarchy>
  </Dimension>
  <Cube name="TestCube" visible="true" cache="true" enabled="true">
    <Table name="sample_fact_table">
    </Table>
    <DimensionUsage source="Author" name="Author" visible="true" foreignKey="authorfk">
    </DimensionUsage>
    <DimensionUsage source="Book" name="Book" visible="true" foreignKey="bookfk">
    </DimensionUsage>
    <Measure name="quantity" column="quantity" aggregator="sum" visible="true">
    </Measure>
  </Cube>
</Schema>

Если я пытаюсь выполнить запрос MDX:

select 
Measures.quantity ON COLUMNS,
NON EMPTY Author.Children ON ROWS
from [TestCube]

У меня хороший результат:

Axis #0:
{}
Axis #1:
{[Measures].[quantity]}
Axis #2:
{[author].[Al]}
{[author].[John]}
{[author].[Jack]}
Row #0: 3
Row #1: 9
Row #2: 1

Но если вместо автора я запрашиваю книгу, вот так:

select 
Measures.quantity ON COLUMNS,
NON EMPTY Book.Children ON ROWS
from [TestCube]

Я получаю эту ошибку:

Mondrian Error:Failed to parse query 'select 
Measures.quantity ON COLUMNS,
NON EMPTY Book.Children ON ROWS
from [TestCube]'

Mondrian Error:MDX object 'Book' not found in cube 'TestCube'

Что я делаю не так?

Author и Book - оба Измерения, оба объявлены одинаково, оба ссылаются на Куб.

Спасибо!

0 ответов

Другие вопросы по тегам