locked
BISM Parallel Process - Partitions RRS feed

  • Question

  • Hi,

     

    I am processing a BISM model that has a Fact table with 52 partitions. However, when I process the partitions from BIDS, the processing is executed in series!

    I noticed that the same screen is used when processing from SSMS for a BISM model.

     

    How to process the partitions in parallel?

     

    Thanks in advance,

    Tiago.

    Tuesday, August 9, 2011 11:40 AM

Answers

  • Hi,
     
    I found a way to do it:
    • I went to SSMS and create the script of what I wanted to process.
    • The batch was something like:
    <Batch xmlns='http://schemas.microsoft.com/analysisservices/2003/engine' Transaction='true'>
     <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
     <Type>ProcessFull</Type>
     <Object>
     <DatabaseID>Data Base ID</DatabaseID>
     <DimensionID>Dimension 1 ID</DimensionID>
     </Object>
     </Process>
     <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
     <Type>ProcessFull</Type>
     <Object>
     <DatabaseID>Data Base ID</DatabaseID>
     <DimensionID>Dimension 2 ID</DimensionID>
     </Object>
     </Process>
    </Batch>
    
    • I then manually change the script to add the tags <Parallel> and </Parallel>
     
    <Batch xmlns='http://schemas.microsoft.com/analysisservices/2003/engine' Transaction='true'>
     <Parallel>
      <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
       <Type>ProcessFull</Type>
       <Object>
        <DatabaseID>Data Base ID</DatabaseID>
        <DimensionID>Dimension 1 ID</DimensionID>
       </Object>
      </Process>
      <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
       <Type>ProcessFull</Type>
       <Object>
        <DatabaseID>Data Base ID</DatabaseID>
        <DimensionID>Dimension 2 ID</DimensionID>
       </Object>
      </Process>
     </Parallel>
    </Batch>
    

    In fact this for processing tables there are dimensions. So for processing the partitions the situation is similar.
    <Batch xmlns='http://schemas.microsoft.com/analysisservices/2003/engine' Transaction='true'>
     <Parallel>
     <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
      <Type>ProcessFull</Type>
      <Object>
      <DatabaseID>Data Base ID</DatabaseID>
      <CubeID>Model</CubeID>
      <MeasureGroupID>Measure Group ID</MeasureGroupID>
      <PartitionID>Users_6ec97c2d-4aac-4991-8e36-43feea2b68c0</PartitionID>
      </Object>
     </Process>
     <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
      <Type>ProcessFull</Type>
      <Object>
      <DatabaseID>Data Base ID</DatabaseID>
      <CubeID>Model</CubeID>
      <MeasureGroupID>Measure Group ID</MeasureGroupID>
      <PartitionID>Partition ID 1</PartitionID>
      </Object>
     </Process>
     <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
      <Type>ProcessFull</Type>
      <Object>
      <DatabaseID>Data Base ID</DatabaseID>
      <CubeID>Model</CubeID>
      <MeasureGroupID>Measure Group ID</MeasureGroupID>
      <PartitionID>Partition ID 2</PartitionID>
      </Object>
     </Process>
     <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
      <Type>ProcessFull</Type>
      <Object>
      <DatabaseID>Data Base ID</DatabaseID>
      <CubeID>Model</CubeID>
      <MeasureGroupID>Measure Group ID</MeasureGroupID>
      <PartitionID>Partition ID 3</PartitionID>
      </Object>
     </Process>
     </Parallel>
    </Batch>
    
    

     Neverthless, it would be good to have this feature directly in BIDS and SSMS the same way for SSAS.
    Tiago.
     


    • Marked as answer by Tiago Rente Tuesday, August 9, 2011 12:55 PM
    Tuesday, August 9, 2011 12:48 PM
  • Hi Tiago.

    It is great you figured your way out in XMLA on how to create parallel Batch commands.

    One point wanted to add:

    Although you have several partition processing commands wrapped in the parallel batch you might notice looking at the Profiler that processing of these partitions will be still serialized by the Analysis Server.

    That is due to the fact that in first release Analysis Server will not be supporting parallel processing of partitions.

     


    http://www.sqljunkies.com/WebLog/edwardm/
    • Marked as answer by Tiago Rente Tuesday, September 13, 2011 8:27 AM
    Tuesday, August 9, 2011 7:47 PM

All replies

  • Hi,
     
    I found a way to do it:
    • I went to SSMS and create the script of what I wanted to process.
    • The batch was something like:
    <Batch xmlns='http://schemas.microsoft.com/analysisservices/2003/engine' Transaction='true'>
     <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
     <Type>ProcessFull</Type>
     <Object>
     <DatabaseID>Data Base ID</DatabaseID>
     <DimensionID>Dimension 1 ID</DimensionID>
     </Object>
     </Process>
     <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
     <Type>ProcessFull</Type>
     <Object>
     <DatabaseID>Data Base ID</DatabaseID>
     <DimensionID>Dimension 2 ID</DimensionID>
     </Object>
     </Process>
    </Batch>
    
    • I then manually change the script to add the tags <Parallel> and </Parallel>
     
    <Batch xmlns='http://schemas.microsoft.com/analysisservices/2003/engine' Transaction='true'>
     <Parallel>
      <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
       <Type>ProcessFull</Type>
       <Object>
        <DatabaseID>Data Base ID</DatabaseID>
        <DimensionID>Dimension 1 ID</DimensionID>
       </Object>
      </Process>
      <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
       <Type>ProcessFull</Type>
       <Object>
        <DatabaseID>Data Base ID</DatabaseID>
        <DimensionID>Dimension 2 ID</DimensionID>
       </Object>
      </Process>
     </Parallel>
    </Batch>
    

    In fact this for processing tables there are dimensions. So for processing the partitions the situation is similar.
    <Batch xmlns='http://schemas.microsoft.com/analysisservices/2003/engine' Transaction='true'>
     <Parallel>
     <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
      <Type>ProcessFull</Type>
      <Object>
      <DatabaseID>Data Base ID</DatabaseID>
      <CubeID>Model</CubeID>
      <MeasureGroupID>Measure Group ID</MeasureGroupID>
      <PartitionID>Users_6ec97c2d-4aac-4991-8e36-43feea2b68c0</PartitionID>
      </Object>
     </Process>
     <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
      <Type>ProcessFull</Type>
      <Object>
      <DatabaseID>Data Base ID</DatabaseID>
      <CubeID>Model</CubeID>
      <MeasureGroupID>Measure Group ID</MeasureGroupID>
      <PartitionID>Partition ID 1</PartitionID>
      </Object>
     </Process>
     <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
      <Type>ProcessFull</Type>
      <Object>
      <DatabaseID>Data Base ID</DatabaseID>
      <CubeID>Model</CubeID>
      <MeasureGroupID>Measure Group ID</MeasureGroupID>
      <PartitionID>Partition ID 2</PartitionID>
      </Object>
     </Process>
     <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
      <Type>ProcessFull</Type>
      <Object>
      <DatabaseID>Data Base ID</DatabaseID>
      <CubeID>Model</CubeID>
      <MeasureGroupID>Measure Group ID</MeasureGroupID>
      <PartitionID>Partition ID 3</PartitionID>
      </Object>
     </Process>
     </Parallel>
    </Batch>
    
    

     Neverthless, it would be good to have this feature directly in BIDS and SSMS the same way for SSAS.
    Tiago.
     


    • Marked as answer by Tiago Rente Tuesday, August 9, 2011 12:55 PM
    Tuesday, August 9, 2011 12:48 PM
  • Hi Tiago.

    It is great you figured your way out in XMLA on how to create parallel Batch commands.

    One point wanted to add:

    Although you have several partition processing commands wrapped in the parallel batch you might notice looking at the Profiler that processing of these partitions will be still serialized by the Analysis Server.

    That is due to the fact that in first release Analysis Server will not be supporting parallel processing of partitions.

     


    http://www.sqljunkies.com/WebLog/edwardm/
    • Marked as answer by Tiago Rente Tuesday, September 13, 2011 8:27 AM
    Tuesday, August 9, 2011 7:47 PM