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.