[Mondrian] Re: Test failures with high-cardinality dimensions

Luis F. Canals luis.canals at stratebi.com
Mon Jul 14 02:47:12 EDT 2008


Hi all,

about this question, problem arises when using functions with high  
cardinality dimensions not implemented (or not implementable) for this  
kind of dimensions.
Since not every function or query will work for high cardinality  
dimensions, I think it's not a good idea to use  
"mondrian.test.highCardDimensions=...". The solution would be to use  
mondrian/rolap/HighDimensionsTest (or simiar) and include any tests  
related with high dimensions into it instead of this kind of "blind"  
tests for all functions.

So the first thing to do is: move from testing every functions against  
high card. dimensions to detailed tests function by function for  
suitable ones.

The key question here is the limitations for the meaning of "high  
cardility" feature: high cardinality dimensions are able to be  
managed. But the use of functions with these kind of dimensions can't  
be equivalent to usual dimensions. Mainly, all functions that require  
the whole set of elements to produce a result will not work for high  
cardinality dimensions (obviously).

At this time, we have no human sructure to refactor everything and  
implement all possible functions to work with high dimension property  
(Mondrian is a very big project).
It's a continuous task, open for everyone, ans sould be done by  
everyone.

The first (and most difficult) step has been done: Mondrian can read  
high cardinality dimensions; the second step (implement all suitable  
functions to work for high cardimality dimensions) is drafted, with  
"head", "count", "filter" and "non empty" functions already running.

I see here an opportunity to "transfer knowledge": it would be better  
that someone (different than us) made propper changes to implement  
"Ancestor" function (if has sense) for high cardilanity dimensions.  
For example, for "Ancestor" function, the approach would be:
    The first question: Would Ancestor work for high cardinality  
dimensions?
    Second question: How would it work for h.c. dimensions?
    Then, implement it.


Best regards!


- Luis F. Canals
   CISM
   luis.canals at stratebi.com



On 06/07/2008, at 19:48, Julian Hyde wrote:

> Luis, Jorge, Javier,
>
> There are still some errors with high-cardinality dimensions. See  
> below; and also search for 'execHighCardTest' in http://www.hydromatic.net/buildlogs/mondrian-marmalade.hydromatic.net-20080705-change11263.log.bz2 
> .
>
> Do you know about these? Any idea what the cause is? When can they  
> be fixed?
>
> Julian
>
> Running test with JDK=jdk1.6 retroweave= database=oracle  
> props={ mondrian.test.highCardDimensions=Store}
>
> [java] 1)  
> testAncestorNumeric 
> (mondrian.olap.fun.FunctionTest)mondrian.olap.MondrianException:  
> Mondrian Error:Failed to parse query 'select {Ancestor([Store].[USA]. 
> [Washington], 1)} on columns from [Sales Ragged]'
>
> [java] 2)  
> testAncestorWithHiddenParent 
> (mondrian.olap.fun.FunctionTest)mondrian.olap.MondrianException:  
> Mondrian Error:Failed to parse query 'select {Ancestor([Store].[All  
> Stores].[Israel].[Haifa], [Store].[Store Country])} on columns from  
> [Sales Ragged]'
>
> [java] 3)  
> testOrdinal 
> (mondrian.olap.fun.FunctionTest)mondrian.olap.MondrianException:  
> Mondrian Error:Failed to parse query 'with member [Measures].[Foo]  
> as '[Store].[All Stores].[USA].[Washington].ordinal' select  
> {[Measures].[Foo]} on columns from [Sales Ragged]'
>
> [java] 4)  
> testLead 
> (mondrian.test.RaggedHierarchyTest)mondrian.olap.MondrianException:  
> Mondrian Error:Failed to parse query 'select {[Store].[All Stores]. 
> [Mexico].[DF].Lead(1)} on columns from [Sales Ragged]'
>
> [java] 5)  
> testParentOfHaifa 
> (mondrian.test.RaggedHierarchyTest)mondrian.olap.MondrianException:  
> Mondrian Error:Failed to parse query 'select {[Store].[Israel]. 
> [Haifa].Parent} on columns from [Sales Ragged]'
>
> [java] 6)  
> testPrevMemberOfHaifa 
> (mondrian.test.RaggedHierarchyTest)mondrian.olap.MondrianException:  
> Mondrian Error:Failed to parse query 'select {[Store].[Israel]. 
> [Haifa].PrevMember} on columns from [Sales Ragged]'
>
> [java] 7)  
> testNextMemberOfTelAviv 
> (mondrian.test.RaggedHierarchyTest)mondrian.olap.MondrianException:  
> Mondrian Error:Failed to parse query 'select {[Store].[Israel].[Tel  
> Aviv].NextMember} on columns from [Sales Ragged]'
>
> [java] 8)  
> testNextMemberOfBC 
> (mondrian.test.RaggedHierarchyTest)mondrian.olap.MondrianException:  
> Mondrian Error:Failed to parse query 'select {[Store].[All Stores]. 
> [Canada].[BC].NextMember} on columns from [Sales Ragged]'
>
> [java] 9)  
> testAncestorOfHaifa 
> (mondrian.test.RaggedHierarchyTest)mondrian.olap.MondrianException:  
> Mondrian Error:Failed to parse query 'select {Ancestor([Store]. 
> [Israel].[Haifa], [Store].[Store State])} on columns from [Sales  
> Ragged]'
>
> [java] 10)  
> testDataSourceChangeListenerPlugin 
> (mondrian 
> .rolap.DataSourceChangeListenerTest)java.lang.ClassCastException:  
> mondrian.rolap.NoCacheMemberReader cannot be cast to  
> mondrian.rolap.SmartMemberReader
>
> [java] 11)  
> testLookupMemberCache 
> (mondrian.rolap.NonEmptyTest)java.lang.ClassCastException:  
> mondrian.rolap.NoCacheMemberReader cannot be cast to  
> mondrian.rolap.SmartMemberReader
>
> [java] 12)  
> testLookupMember2 
> (mondrian.rolap.NonEmptyTest)mondrian.olap.MondrianException:  
> Mondrian Error:Failed to parse query 'select {[Store].[USA]. 
> [Washington]} on columns from [Sales Ragged]'
>
> [java] 1)  
> testCrossJoinAsteriskQuery 
> (mondrian.olap.fun.FunctionTest)junit.framework.ComparisonFailure:  
> Expected:
>
> [java] 2)  
> testCalculatedMemberInCube 
> (mondrian 
> .test.TestCalculatedMembers)junit.framework.ComparisonFailure:  
> Expected:
>
> [java] 3)  
> testHierarchize 
> (mondrian 
> .test.RaggedHierarchyTest)junit.framework.ComparisonFailure: Expected:
>
> [java] 4)  
> testDescendantsOfRootAtCity 
> (mondrian 
> .test.RaggedHierarchyTest)junit.framework.ComparisonFailure: Expected:
>
> [java] Tests run: 1856, Failures: 4, Errors: 12
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.pentaho.org/pipermail/mondrian/attachments/20080714/d2734a4f/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 194 bytes
Desc: This is a digitally signed message part
Url : http://lists.pentaho.org/pipermail/mondrian/attachments/20080714/d2734a4f/attachment.bin 


More information about the Mondrian mailing list