The SSAS Partition Manager is entirely generic piece of C# code which will work in any situation. With a tiny amount of configuration, you can start using the SSAS Partition Manager with your multidimensional cube and/or tabular models very quickly. You should never need to modify the C# code. All configuration is done in T-SQL, so it is very much in the realm of the average business intelligence consultant. No specialist skills required!

The key to understanding the SSAS Partition Manager is to know that it creates partitions based on the content of a view in the SQL database called SsasPartitions which tells it what type of partitions to create and how many. When it connects to the cube or model, it expects to find a template partition which has its where clause set to WHERE 1=0 which it clones to form the new partition. That's it! The SSAS Partition Manager does the rest.

Program Logic

The SSAS Partition Manager starts by reading from its config file the connection string to the SQL Server database and a flag which indicates which server environment to connect to (i.e. DEV, UAT or PROD). It then connects to the SQL Server database and queries the SsasServer table for the name of the SSAS server using the server environment flag. Thus, DEV would connect to your localhost, UAT to your UAT server etc. etc.
The program then connects to the SSAS server using the Analysis Management Objects (AMO) library Microsoft.AnalysisServices.

The SSAS Partition Manager then queries the SsasPartitions view to find out what partitions are needed. This view lists all the partitions in all the measure groups in all the cubes/models in all the databases on the SSAS server. Thus the SSAS Partition Manager can handle a multi-cube, multi-database environment very easily.

The SSAS Partition Manager will add partitions to all cubes/models in all databases listed in the SsasPartitions view, so it will work out of the box even in multi-cube, multi-database environments. The SSAS Partition Manager will also delete partitions which are not listed in the SsasPartitions view with the exception of any template partition (i.e. a partition with the word template in its name). Thus you can implement a rolling-partition scheme whereby old data is removed from the cube automatically.

The program logic is comprehensively tested by a full set of unit and integration tests before each release to ensure the quality of the code, so you can rest assured it won't go wrong on your server.

Validation Phase

The SSAS Partition Manager has a validation phase which checks your configuration is correct. So for example, if you misspell the name of a measure group, a warning message will be written to the log. The validation covers every aspect of the configuration, including checking your template partition contains WHERE 1=0, so just check the log file to see if everything is correctly set up in your environment.

Database Objects to support the SSAS Partition Manager

The SSAS Partition Manager relies on the presence of a few key database objects. You can choose which database you put these in yourself. The key thing is that you customize the SsasDateDimWrapper view to work with your own date dimension or equivalent. All this is explained in Configuring the SSAS Partition Manager.

Highly Configurable Logging

By default, the SSAS Partition Manager will log all its actively to a text file so you can see exactly what it has done. However, this is entirely configurable and you have the option to write logging information to a SQL Server table or choose from one of the numerous other logging styles supported by Apache log4net™. See Configuring the SSAS Partition Manager for more information.

Deploying your Cube or Model

The SSAS Partition Manager can also deploy your new OLAP database or tabular model using the SSAS Partition Manager Command-Line Options. Not only is the new cube/model deployed, but it is automatically partitioned and can also be fully processed. See SSAS Partition Manager Command-Line Options for further information.

Processing your Cube / Model

Using the SSAS Partition Manager you can also process your Multidimensional or Tabular database using a ProcessFull. This is done using one of the new SSAS Partition Manager Command-Line Options.

Of course, ProcessFull of the entire OLAP database may not be appropriate for your specific circumstances, in which case you can modify the C# code to implement your own processing logic. All the stubs are present to make this relatively straight forward. However, this will make SSAS Partition Manager specific to your project and it will no longer be generic.

Last edited Jul 13, 2015 at 10:59 PM by JohnTunnicliffe, version 2