IT Share you

Mondrian : 사용할 집계 테이블을 가져올 수없는 것 같습니다.

shareyou 2020. 12. 5. 10:58
반응형

Mondrian : 사용할 집계 테이블을 가져올 수없는 것 같습니다.


나는 집계 테이블이 작동하도록 고심하고 있습니다. 내 팩트 테이블은 다음과 같습니다.

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"/>

나는 대부분 문서 에서 집계 테이블의 두 번째 예를 복사하고 있습니다 . 대부분의 열은 테이블로 축소되지 않으며 차원 테이블에 대한 외래 키입니다.

실행하려는 내 쿼리는 다음과 같습니다.

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가 비트로 포함되어 있지 않으므로 해당 열로 쿼리를 만들면이 집계 테이블이 건너 뛰게됩니다. 그것은 내가 계획했던 것과 반대입니다. 내 계획은이 집계 테이블을 사용하여 연도 경계에 대한 쿼리를 만드는 한이었습니다.

I don't understand why this isn't working and why it fails to build the bit keys properly. I've tried debugging mondrian code, but figuring out which column maps to which position in the bit keys is not obvious. I feel like this shouldn't be this hard, but everything out there doesn't really explain this very well. And this aggregation table architecture is really to break.

What am I doing wrong? And why doesn't my solution work?


Update Here is my mondrian.properties file:

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

Might be the case mondrian­.­rolap­.­aggregates­.­Read is set to true and mondrian.rolap.aggregates.Use is set to false. Please set mondrian.rolap.aggregates.Use=true and check. Reference: http://mondrian.pentaho.com/documentation/configuration.php

If this is not the case, please attach all the properties related to aggregate tables and the complete cube definition XML.

참고URL : https://stackoverflow.com/questions/29782583/mondrian-cannot-seem-to-get-aggregation-tables-to-be-used

반응형