olap mondrian olap4j

olap - Mondrian: Parece que no se pueden usar tablas de agregación



olap4j (1)

Puede ser el caso mondrian.rolap.aggregates.Read se establece en true y mondrian.rolap.aggregates.Use se establece en false. mondrian.rolap.aggregates.Use=true y verifique. Referencia: http://mondrian.pentaho.com/documentation/configuration.php

Si este no es el caso, adjunte todas las propiedades relacionadas con las tablas agregadas y el XML de definición de cubo completo.

He estado luchando para que funcionen las tablas de agregación. Aquí está mi tabla de hechos:

employment_date_id dimension1_id dimension2_id dimension3_id dimension4 dimension5 measure1 measure2 measure3

Estoy contrayendo el employment_date_id del año, trimestre y mes para incluir solo el año, pero se incluyen todas las demás columnas. Así es como se ve mi tabla de agregación:

yearquartermonth_year dimension1_id dimension2_id dimension3_id dimension4 dimension5 measure1 measure2 measure3 fact_count

Solo estoy colapsando la porción del año de la fecha. Los campos restantes se dejan como están. Aquí está mi configuración:

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

En general, estoy copiando el segundo ejemplo de tablas de agregación de la documentación . La mayoría de mis columnas no están contraídas en la tabla y son claves externas a las tablas de dimensiones.

Mi consulta que intento ejecutar es algo así como:

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

El problema es que cuando lo depuro y activo el registro veo claves de bits que se ven así:

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

Y el patrón de bits de mi consulta es:

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

Y entonces mi tabla de agregación se omite. Sin embargo, estas son las columnas exactas que se pliegan en la tabla. Pero las posiciones de bit están desactivadas entre la consulta y la tabla de agregación. La otra cosa que encuentro extraña es que una parte de las columnas está contraída en la tabla, pero todas las AggForeignKeys no están incluidas como bits, por lo que si realizo una consulta con esas columnas, esta tabla de agregación se omitirá. Eso es contrario a lo que había planeado. Mi plan fue siempre que haga una consulta sobre los límites de los años use esta tabla de agregación.

No entiendo por qué esto no funciona y por qué no crea las claves de bits correctamente. He intentado depurar el código mondrian, pero averiguar qué columna se asigna a qué posición en las claves de bit no es obvia. Siento que esto no debería ser tan difícil, pero todo lo que hay afuera realmente no lo explica muy bien. Y esta arquitectura de tabla de agregación realmente debe romperse.

¿Qué estoy haciendo mal? ¿Y por qué mi solución no funciona?

Actualizar Aquí está mi archivo 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