Showing posts with label partitions. Show all posts
Showing posts with label partitions. Show all posts

Monday, March 12, 2012

processing cube with partitions

Hi,

I have a cube with 2 partitions. Are these 2 partitions being processed everytime I have a ProcessData and Process Index? Coz i worry that if it's just processing 1 partition every time, i might have new data in one extraction that should reside in Partition 1 and another set of data (also in the same extraction) that reside on Partition 2.

cherriesh

If you are issuing your ProcessData and ProcessIndex commands against the cube, then it will cascade down and process all the partitions in that cube.|||

ic... but is there an option which partition i will just process?

cherriesh

|||Sure, you can process just one partition at a time (or multiple in parallel). There are multiple ways to do this. You can right click on a partition in SSMS and process it or you can build an XMLA command to process one or more partitions, you can do it from the partitions screen in BIDS.|||

is it a standard to just process only a partition of a cube every time (mine is partitioned based on This Year and Previous Years...) or by using Process Data and Process Index instead (meaning, process all)? What do you usually do?

|||

Usually you try to only process the smallest amount of data possible. I have done both extremes, sometimes I have to process the entire cube everytime, other times I only do a recent partition. It depends on the nature of the data and the source systems.

Note: ProcessData and ProcessIndex can be done at a partition level too. In fact when you do a process operation at the cube level, all that happens is that SSAS performs the specified processing command on each partition in the cube.

|||

Hi,

How to do it in the partition level?

thanks a lot!

cherriesh

|||

I don't have access to an Adventure Works database at the moment, so I don't know if the object Id's below are valid, but the basic structure of the XMLA command to process a partition would look like the following.

<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">

<Parallel>

<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance

xmlnsBig Smiledl2=http://schemas.microsoft.com/analysisservices/2003/engine/2

xmlnsBig Smiledl2_2=http://schemas.microsoft.com/analysisservices/2003/engine/2/2>

<Object>

<DatabaseID>Adventure Works DW</DatabaseID>

<CubeID>Adventure Works</CubeID>

<MeasureGroupID>Sales</MeasureGroupID>

<PartitionID>Sales 2003</PartitionID>

</Object>

<Type>ProcessFull</Type>

<WriteBackTableCreation>UseExisting</WriteBackTableCreation>

</Process>

</Parallel>

</Batch>

You can also navigate to the partition in the object browser in SSMS, right click on one and process it and you should be able to use the processing task in SSIS to do just a single partition. There are probably a couple of other methods of doing this too, essentially the all end up sending an XMLA command to the SSAS server. In my example I am using ProcessFull, but ProcessData and ProcessIndex will work at the partition level.

processing cube with partitions

Hi,

I have a cube with 2 partitions. Are these 2 partitions being processed everytime I have a ProcessData and Process Index? Coz i worry that if it's just processing 1 partition every time, i might have new data in one extraction that should reside in Partition 1 and another set of data (also in the same extraction) that reside on Partition 2.

cherriesh

If you are issuing your ProcessData and ProcessIndex commands against the cube, then it will cascade down and process all the partitions in that cube.|||

ic... but is there an option which partition i will just process?

cherriesh

|||Sure, you can process just one partition at a time (or multiple in parallel). There are multiple ways to do this. You can right click on a partition in SSMS and process it or you can build an XMLA command to process one or more partitions, you can do it from the partitions screen in BIDS.|||

is it a standard to just process only a partition of a cube every time (mine is partitioned based on This Year and Previous Years...) or by using Process Data and Process Index instead (meaning, process all)? What do you usually do?

|||

Usually you try to only process the smallest amount of data possible. I have done both extremes, sometimes I have to process the entire cube everytime, other times I only do a recent partition. It depends on the nature of the data and the source systems.

Note: ProcessData and ProcessIndex can be done at a partition level too. In fact when you do a process operation at the cube level, all that happens is that SSAS performs the specified processing command on each partition in the cube.

|||

Hi,

How to do it in the partition level?

thanks a lot!

cherriesh

|||

I don't have access to an Adventure Works database at the moment, so I don't know if the object Id's below are valid, but the basic structure of the XMLA command to process a partition would look like the following.

<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">

<Parallel>

<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance

xmlnsBig Smiledl2=http://schemas.microsoft.com/analysisservices/2003/engine/2

xmlnsBig Smiledl2_2=http://schemas.microsoft.com/analysisservices/2003/engine/2/2>

<Object>

<DatabaseID>Adventure Works DW</DatabaseID>

<CubeID>Adventure Works</CubeID>

<MeasureGroupID>Sales</MeasureGroupID>

<PartitionID>Sales 2003</PartitionID>

</Object>

<Type>ProcessFull</Type>

<WriteBackTableCreation>UseExisting</WriteBackTableCreation>

</Process>

</Parallel>

</Batch>

You can also navigate to the partition in the object browser in SSMS, right click on one and process it and you should be able to use the processing task in SSIS to do just a single partition. There are probably a couple of other methods of doing this too, essentially the all end up sending an XMLA command to the SSAS server. In my example I am using ProcessFull, but ProcessData and ProcessIndex will work at the partition level.

Wednesday, March 7, 2012

Process Hangs

the OK status is:

I build 12 fact table point to 12 partitions, and a father-son dimention. the dimention get to the fact table by the key column(son). I processFull,processUpdate the dimention, it run well. I processFull the cube or the partition, it run well too.

The Hangs status is:

I use the Process Dimention component in the SSIS. I chose the dimention, and use an ole db Source component point to the dimention table,and in it I use a query to chose the new row:"select from AgentDim where newdata=1". In the IDE, run the package, it's OK. Then I save the package to file system, and run it by Sql Server Job Agent.

Then it hangs, the job to run the package never stop. I stop the AS service and restart it. And I get into the Management Studio, and try to Process, then found it hangs.

I tried ProcessFull, ProcessAdd, ProcessUpdate, I tried deal with cube,dimention and any object, all hangs. It seem to AS is already dead.

God save me.

thanks.

Further Info: the query to chose the new row will return 0 rows.

Found Something, I think I found a bug.

The Hangs status happened when you do this:

The query to chose the new row returns 0 rows, that will make SSIS try to put a NULL set into AS,but AS don't know how to deal with such a NULL set, so it just keeps stop there.

This is really make me angry. We will get new rows everytime if we processAdd? Ofcause not.