none
How cube process full work?

    Question

  • Hello,

    I am really confused on how process full work.

    1). Does it drop all the measures and dimension data and reload it again?

    2).OR it Drop all the measures data and processed full on unprocessed dimension and do nothing with the processed dimension?

    If the point 2 is true then we will never get the recent data for processed dimension on process full.then in that case do we need to do first dimension process full then process full on cube but its time consuming?

    And if I do the process update on dimension then process full on cube. in that case when i deployed the cube first time then my job is failing because for some unprocessed dimension there is no data to update so process update on dimension failing.

    Currently I am doing process full but i am not getting the recent data for dimension.

    Can you please guide me how to handle processing So in Min time I can get the most recent data of dimension and measure?

    And is there any way that I can check if dimension has no data then process full on dim else process update.
    Saturday, June 22, 2013 9:41 AM

Answers

  • Please read again my reply on Saturday, June 22, 2013 8:08 PM; -

    "

    When you change the structure of a dimension you need to redeploy your cube, perform a process full of the dimension and a process full of all the measure groups which are sliced by this dimension. In practice this is done as a manual activity.

    I wouldn't go down the route of trying to automate the procedure of re-deploying / refreshing the cube after changing the structure of a dimension. I understand this is not practical.  You have not got the same options as say for example if you changed the structure of a Dimension within the Data Warehouse.

    "

    Just for completeness when you have a large production cube you can use the deployment wizard to retain partitions and user roles, etc. However the emphasis is still when you change the structure of a dimension in practice the most pragmatic solution is to deploy the whole cube which is sliced by that dimension.

    http://msdn.microsoft.com/en-us/library/ms174817.aspx

    If you have a small solution with one database / cube then as Richard says the most pragmatic solution is to re-deploy the whole database / SSAS project after you have changed the structure of a dimension.

    Kind Regards,

    Kieran.


    Kieran Patrick Wood http://www.innovativebusinessintelligence.com http://uk.linkedin.com/in/kieranpatrickwood http://kieranwood.wordpress.com/


    Monday, June 24, 2013 11:46 AM

All replies

  • Hi Javedjha,

    In summary if I understand the context of your question correctly you can't rely on process full of a cube to capture dimension updates.

    Your process cube strategy mainly depends on the size of your cube and the frequency of data refresh requirement.

    Normally the cube is processed on a nightly basis.

    So your typical cube process may contain the following; -

    1) Process Update of all your dimensions.

    2) Process Full of your measure groups.

    N.B; - It's important that you perform a process update of your dimensions before you perform a process full of your measure groups.

    You only need to perform a process full of a dimension after you have changed the structure of the dimension, e.g. added a new attribute.

    If some of your fact tables / measure groups are very large e.g. 100 million+ records you may want to consider partitioning.

    Useful links; -

    http://blogs.msdn.com/b/karang/archive/2011/01/25/kind-of-ssas-processing-in-simple-words.aspx

    http://www.bp-msbi.com/2009/12/7-ways-to-process-analysis-services/

    Kind Regards,

    Kieran.


    Kieran Patrick Wood http://www.innovativebusinessintelligence.com http://uk.linkedin.com/in/kieranpatrickwood http://kieranwood.wordpress.com/


    Saturday, June 22, 2013 12:55 PM
  • Thanks for replying Kieran

    I am processing process update on dimension and process full on cube by putting xmla in sql job.

    but when structure of dim change then job failed after deployment because there is no data to update in dim.  how to avoid this?

    Is there any way that in one job I can check if structure of dimension is not change then process update else process full?


     

    Saturday, June 22, 2013 5:24 PM
  • I would perform a process full of your measure groups instead of your cube.

    When you change the structure of a dimension you need to redeploy your cube, perform a process full of the dimension and a process full of all the measure groups which are sliced by this dimension. In practice this is done as a manual activity.

    I wouldn't go down the route of trying to automate the procedure of re-deploying / refreshing the cube after changing the structure of a dimension. I understand this is not practical.  You have not got the same options as say for example if you changed the structure of a Dimension within the Data Warehouse.


    Kieran Patrick Wood http://www.innovativebusinessintelligence.com http://uk.linkedin.com/in/kieranpatrickwood http://kieranwood.wordpress.com/

    Saturday, June 22, 2013 8:08 PM
  • Patrick, I think after processing the dimension process  full cube is same as processing only measure groups after  dimension.

    beacasue  Full cube process does not process the processed dimension

    correct me if I am wrong.


    Sunday, June 23, 2013 6:08 AM
  • Hi javedkha,

    The following table describes the processing methods that are available in Analysis Services, and identifies the objects for which each method is supported.

    Mode

    Applies to

    Description

    Process Default

    Cubes, databases, dimensions, measure groups, mining models, mining structures, and partitions.

    Detects the process state of database objects, and performs processing necessary to deliver unprocessed or partially processed objects to a fully processed state. If you change a data binding, Process Default will do a Process Full on the affected object.

    Process Full

    Cubes, databases, dimensions, measure groups, mining models, mining structures, and partitions.

    Processes an Analysis Services object and all the objects that it contains. When Process Full is executed against an object that has already been processed, Analysis Services drops all data in the object, and then processes the object. This kind of processing is required when a structural change has been made to an object, for example, when an attribute hierarchy is added, deleted, or renamed.

    Process Clear

    Cubes, databases, dimensions, measure groups, mining models, mining structures, and partitions.

    Drops the data in the object specified and any lower-level constituent objects. After the data is dropped, it is not reloaded.

    Process Data

    Dimensions, cubes, measure groups, and partitions.

    Processes data only without building aggregations or indexes. If there is data is in the partitions, it will be dropped before re-populating the partition with source data.

    Process Add

    Dimensions, measure groups, and partitions

    NoteNote

    Process Add is not available for dimension processing in Management Studio, but you can write XMLA script performs this action.

    For dimensions, adds new members and updates dimension attribute captions and descriptions.

    For measure groups and partitions, adds newly available fact data and process only to the relevant partitions.

    Process Update

    Dimensions

    Forces a re-read of data and an update of dimension attributes. Flexible aggregations and indexes on related partitions will be dropped.

    Process Index

    Cubes, dimensions, measure groups, and partitions

    Creates or rebuilds indexes and aggregations for all processed partitions. For unprocessed objects, this option generates an error.

    Processing with this option is needed if you turn off Lazy Processing.

    Process Structure

    Cubes and mining structures

    If the cube is unprocessed, Analysis Services will process, if it is necessary, all the cube's dimensions. After that, Analysis Services will create only cube definitions. If this option is applied to a mining structure, it populates the mining structure with source data. The difference between this option and the Process Full option is that this option does not iterate the processing down to the mining models themselves.

    Process Clear Structure

    Mining structures

    Removes all training data from a mining structure.

    For more detail information, please see:
    Processing Options and Settings (Analysis Services): http://technet.microsoft.com/en-us/library/ms174774.aspx

    Best Regards,


    Elvis Long
    TechNet Community Support

    Monday, June 24, 2013 3:15 AM
  • At risk of over simplifying, I would encourage an ssas novice to perform a "process full" on the ssas database each night.  This is a bit of an overkill, but it is very simple, and if there is time (performance) then it is a very simple and failsafe way of processing your cubes.  

    Note, while "process full" is executing on your database, all cubes will continue to be available for querying.  Only at the end of processing, will ssas switch the new for the old cube.

    If you need to process more frequently than once per day, or a full process takes longer than your batch window, you should then learn more and look at partitioning, incremental processing etc.

    http://RichardLees.blogspot.com


    Richard

    Monday, June 24, 2013 4:54 AM
  • Hi Javedkha,

    I understand you are correct. I also believe a process full of the cube is the same as processing only measure groups.

    I have not been able to find an MSDN link to confirm this. The closest I have found is the link Elvis has provided.

    However within the book; - "Microsoft® SQL Server™ 2008 Analysis Services Unleashed" on Chapter 21 this book describes the processing of a cube in great detail including processing measure group partitions and aggregations, but does not mention dimensions. So this concurs that our assumption is correct.

    Since you want to process your cube in the minimum amount of time I still recommend that you; -

    1) Process Update of all your dimensions.

    2) Process Full of your measure groups.

    N.B; - It's important that you perform a process update of your dimensions before you perform a process full of your measure groups.

    You only need to perform a process full of a dimension after you have changed the structure of the dimension, e.g. added a new attribute.

    If some of your fact tables / measure groups are very large e.g. 100 million+ records you may want to consider partitioning.


    Kieran Patrick Wood http://www.innovativebusinessintelligence.com http://uk.linkedin.com/in/kieranpatrickwood http://kieranwood.wordpress.com/

    Monday, June 24, 2013 10:10 AM
  • Hi Kieran,

    Currently I am doing what you mention using sql job.

    1).process update all dimension.

    2).process full cube.

    but when the structure of dimension change this job failed and as u mention manually do the process full on dimension. that is what I want to avoid I want to do both in one job. if structure is not change then process update else process full on dimension.

    Thanks for your reply Richard, I have multiple cube in database so can't do the process full on database.

    Thanks,

    Monday, June 24, 2013 10:37 AM
  • Please read again my reply on Saturday, June 22, 2013 8:08 PM; -

    "

    When you change the structure of a dimension you need to redeploy your cube, perform a process full of the dimension and a process full of all the measure groups which are sliced by this dimension. In practice this is done as a manual activity.

    I wouldn't go down the route of trying to automate the procedure of re-deploying / refreshing the cube after changing the structure of a dimension. I understand this is not practical.  You have not got the same options as say for example if you changed the structure of a Dimension within the Data Warehouse.

    "

    Just for completeness when you have a large production cube you can use the deployment wizard to retain partitions and user roles, etc. However the emphasis is still when you change the structure of a dimension in practice the most pragmatic solution is to deploy the whole cube which is sliced by that dimension.

    http://msdn.microsoft.com/en-us/library/ms174817.aspx

    If you have a small solution with one database / cube then as Richard says the most pragmatic solution is to re-deploy the whole database / SSAS project after you have changed the structure of a dimension.

    Kind Regards,

    Kieran.


    Kieran Patrick Wood http://www.innovativebusinessintelligence.com http://uk.linkedin.com/in/kieranpatrickwood http://kieranwood.wordpress.com/


    Monday, June 24, 2013 11:46 AM