What is Open Sparsity?

Options
Unknown
Unknown Active Partner

   I've seen a few cases now where checking the Open Sparsity option on a dataflow does the trick to ensure data makes it to the destination cube correctly. I was hoping someone could help articulate when and why this should be used, or avoided?

 

   As I understand it, the opensparsity option removes any assumptions about where valid data intersections exist in the target. This forces execution of the dataflow for each intersection of the target cube. If a non-zero value is found, it is saved to the target cube and the intersection is populated. Without this option, a dataflow could have a non-zero number to store in a target cube, but since the target intersection is not valid, the result cannot be saved to the target cube. The behaviour looks like the dataflow works fine, but some numbers just don't populate in the target. Without this option checked, the dataflow will only calculate results for each existing intersection of the target cube. With this option checked, a dataflow takes a bit longer because there are more intersections to calculate. Is that correct? Please feel free to correct me where I've misunderstood the option.

Tagged:

Answers

  • Peter van Bennekom
    Options

    Thank you Björn Reuber. Excellent explanation.

     

    The opensparsity toggle is not always available. Not sure why, maybe you can give some pointers.

     

    I have three cubes, same 4 dimensions; month (dense), item (sparse), area (sparse), uom (dense), same sparsity defined for all of them. According to your explanation they should all share the same addressing Matrix.

    When i create a dataflow with two cubes with a simple b=a, the opensparsity toggle is available and i can toggle it on. So far so good. 

    When I create a DF with three of the cubes, however, with a simple c=a-b, the toggle is not available.

     

    How can i model my cubes/DF such that i can use the Open Sparsity in more complex scenarios?

    Or since they share the same addressing Matrix, they have the same value pairs available (then why would the simple case enable the toggle) so Open Sparsity is not needed?

     

    Cheers,

    Peter

  • Hi,

    one of the condition is:

    - the source cube must have a sparse structure and the target cube must have a sparse structure which is made of the same entities plus one or two entities more (also in sparse).

    I have the following example where the open sparse does not work.

    • source cube structured by Year(D), E1 (X), E2 (X), E3 (X). The value in one crossing is +10.
    • target cube structuredby Month(D), E1 (X), E2 (X), E3 (X), E4(X). the value 10 is not written into the cube.

     

    1. Could the time dimension be an issue to open sparsity ? I have Year in source and Month in the target.
    2. Should I disable the "performance mode" of my dataflow to make "open sparsity" working ?
    3. more generic question, if the Max Item Member of E4 is 100 and the "current real members number" of E4 is 5, will the "open sparsity" option write the values of the source cube into 5 crossings (i.e. replicate the source values 5 times) of the target cube (assuming no previous selections on E4) ?

     

    thanks and regards,