Мондриан: не получается использовать таблицы агрегации

Я изо всех сил пытался заставить работать таблицы агрегации. Вот как выглядит моя таблица фактов:

employment_date_id
dimension1_id
dimension2_id
dimension3_id
dimension4
dimension5
measure1
measure2
measure3

Я рушаюсь employment_date_id от года, квартала и месяца, чтобы включить только год, но все остальные столбцы включены. Вот как выглядит моя таблица агрегации:

yearquartermonth_year
dimension1_id
dimension2_id
dimension3_id
dimension4
dimension5
measure1
measure2
measure3
fact_count

Я только сворачиваю часть года с датой. Остальные поля остаются как есть. Вот моя конфигурация:

<AggFactCount column="FACT_COUNT"/>
<AggForeignKey factColumn="dimension1_id" aggColumn="dimension1_id"/>
<AggForeignKey factColumn="dimension2_id" aggColumn="dimension2_id"/>
<AggForeignKey factColumn="dimension3_id" aggColumn="dimension3_id"/>

<AggMeasure name="[Measures].[measure1]" column="measure1"/>
<AggMeasure name="[Measures].[measure2]" column="measure2"/>
<AggMeasure name="[Measures].[measure3]" column="measure3"/>

<AggLevel name="[dimension4].[dimension4]" column="dimension4"/>
<AggLevel name="[dimension5].[dimension5]" column="dimension5"/>
<AggLevel name="[EmploymentDate.yearQuarterMonth].[Year]" column="yearquartermonth_year"/>

Я по большей части копирую 2-й пример таблиц агрегации из документации. Большинство моих столбцов не свернуты в таблицу и являются внешними ключами таблиц измерений.

Мой запрос, который я пытаюсь выполнить, выглядит примерно так:

select {[Measures].[measure1]} on COLUMNS, {[EmploymentDate.yearQuarterMonth].[Year]} on ROWS from Cube1

Проблема в том, что когда я отлаживаю его и включаю ведение журнала, я вижу битовые ключи, которые выглядят так:

AggStar:agg_year_employment
 bk=0x00000000000000000000000000000000000000000000000111111111101111100000000000000000000000000000000000000000000000000000000000000000
 fbk=0x00000000000000000000000000000000000000000000000000000001101111100000000000000000000000000000000000000000000000000000000000000000
 mbk=0x00000000000000000000000000000000000000000000000111111110000000000000000000000000000000000000000000000000000000000000000000000000

И битовый шаблон моего запроса:

Foreign columns bit key=0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
Measure bit key=        0x00000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000

И поэтому моя таблица агрегации пропущена. Тем не менее, это именно те столбцы, которые складываются в таблицу. Но позиции битов между запросом и таблицей агрегации отключены. Другая вещь, которую я нахожу странной, - это то, что часть столбцов свернута в таблицу, но все AggForeignKeys не включены как биты, поэтому, если я сделаю запрос с этими столбцами, эта таблица агрегации будет пропущена? Это противоречит тому, что я планировал. У меня был план, пока вы делаете запрос по границам года, используя эту таблицу агрегирования.

Я не понимаю, почему это не работает и почему не удается правильно построить битовые ключи. Я пытался отладить код Мондриана, но выяснить, какой столбец соответствует какой позиции в битовых ключах, неочевидно. Я чувствую, что это не должно быть так сложно, но все там не очень хорошо объясняет это. И эта архитектура таблицы агрегирования действительно сломана.

Что я делаю неправильно? И почему мое решение не работает?


Обновление Вот мой файл mondrian.properties:

mondrian.jdbcDrivers=com.mysql.jdbc.Driver,oracle.jdbc.driver.OracleDriver

mondrian.rolap.generate.formatted.sql=true
mondrian.rolap.localePropFile=locale.properties
mondrian.rolap.aggregates.Use=true
mondrian.rolap.aggregates.Read=true

mondrian.trace.level=2

mondrian.drillthrough.enable=true

1 ответ

Может иметь место случай, когда mondrian.rolap.aggregates.Read имеет значение true, а mondrian.rolap.aggregates.Use имеет значение false. Пожалуйста, установите mondrian.rolap.aggregates.Use=true и проверить. Ссылка: http://mondrian.pentaho.com/documentation/configuration.php

Если это не так, пожалуйста, приложите все свойства, относящиеся к сводным таблицам и полному XML определения куба.

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