Creating Combination list from Module with 6 Dimension

Background:

 

We have a module with 6 dimensions including time, we have to make a staging list from this module at combination level to store the previous data.

 

For this we need only non-zeros combinations to be created in the staging list.

 

Limitations:

 

Each line item in the existing module is taking ~10-12 GB space therefore we have the summaries as "None"

 

Problem Faced:

 

  1. In Anaplan only 3 dimesnsions can come in the rows in the pivot view, rest have to be either moved to col. or pages.

 

Filters are only getting applied to the dimensions that are in rows

 

  1. The dimensions that are in pages, Anaplan is only making combinations for the selected item in that particular dimension.

Eg. If we have channels in pages and Channel A is selected then combination will only be made for Channel A similarly combination is only getting made for a month that is selected.

 

  1. If we take time in combination of properties then~16 combinations are made for each set i.e. 12 for every month , one for FY and for quarters as well.

 

Please let us know the feasible solution, treat this as priority as this is really urgent

 

@rupali.kukreja @pallavi6.gupta 

Answers

  • Hi @NakulAggarwal 

     

    I would not recommend to have 6 dimensions like this. 

     

    Is it possible for you to concatenate the 5 dimensions into a single list covering all possibilities? (not including time).

    Then use this concatenated dimension to view/save/record the data. 

    This then greatly reduces the sparsity,

     

    Thanks,

     

    Usman

  • @NakulAggarwal I work with issues of sparsity and moving information for saving all the time.

    There are multiple ways to solve your problem.

    Most Viable IMO:
    Flatten your hierarchy, I have a list with 660k list items and the model is under 2 GB total. Even with Summaries turned off, their is hidden information that is generated and stored (parents, codes, etc.)

    I would take your lowest level out of the hierarchy, build 1 column for each roll up and use that as references via lookups. Apply 1-2 dimensions and use a filter per intersection to reduce the step sizes for the imports that I am about to explain. DO NOT APPLY TIME UNTIL YOU HAVE REDUCED YOUR INFORMATION AS MUCH AS POSSIBLE!

    So, your module should be a summary of the total value for the lowest level + 1 dimension, create a view as you were originally working with, and filter out zeros. Import into a new list with a unique ID with the combination of the two dimensions (or replace two with three to reduce steps but increase sparsity)

    Take the new list and apply it against the other dimensions. Repeat as necessary. You have your lowest level without blowing out your model and being able to control the intersection generation. You can use that lowest level intersection from  to create a boolean filter and now you have fixed your view issue or you can pull in time and generate in a new module based off of this trimmed down list and export to your holding location/import from this to the location that you need.


    TWO, can create sparsity issues:
    Concatenate dimensional information for the lowest level of intersection you are going to need and create a new list with multiple imports based off of a flag indicating which intersections  you are generating and append to the end of the list, with the new intersections per iteration. (2 imports, one to update the 'control' view and one to create the additional append action) repeat process for how ever many iterations you need.

    You have created a list, apply time, use a lookup, and filter down via whatever criteria you need. Import/Export into your holding location.

    THREE,  I will respond to my own post. As you stated this was urgent.

  • THREE CONTINUED:

    Use Time to your advantage and shift through it to generate 12 (24, 36, etc.) views and as stated above generate a method to ID which month is filtered to, and create an export into a list that is generated based off of a concatenated column to use as your key.

    FOUR Rebuild:
    Rethink how you have designed the model and use lookups/summaries to your advantage to reduce your total space and numbered lists with only groups of information that is not empty and have the model have an entry form that also generates new list items. Build out with your hierarchy tree vs down. Eg. L1 - > L2 + L1 - > L2T2, use look ups vs L1 ->L 2 -> L3, etc.

    Note;
    Remember you can build multiple actions in one process. It is ok to have 20 processes in 1 action that generate what you are looking for and have to kick off with an automated tool or via a roll over process to rebuild.

    Leverage your users to reduce sparsity and only load data that isn't 0s

    Reduce sparsity by not applying dimensions to each other, but generating a list via only the pieces that need to be generated.

    Reduce hierarchy towers/skyscrapers and instead build more garages, with the exception of your reporting information and ONLY give the most important line item(s) that level of drill down, and if it is not necessary to do it continuously on one grid, break up the hierarchy into flatter lists or interacting hierarchies.