SSAS - script partitions possible? - ssas

I was recently tasked with partitioning a large cube and I ended up creating 15 partitions on several measure groups. It's sped up the processing time considerably. This was done in BIDS on a development copy of the cube. My question is on deploying to the production cube. Some other changes have occurred in production while I was working on this and I don't want to overwrite them so I can't just deploy the development project to production. Is there a way for me to script just the partitioning I performed on the development cube and apply that script to the production cube?
Thanks in advance

You can implement SSIS package to automate this task. A simple example could be found here http://www.ssas-info.com/analysis-services-scripts/1622-script-to-automate-ssas-partition-management-sql-ssis

You can automate the creation of partitions in your production cube using SQL Server Agent and the SSAS Partition Manager which can be downloaded from https://ssaspartitionmanager.codeplex.com/
With just a few lines of config, you can dynamically create cube and tabular partitions on your production server.

Related

SSAS Tabular Model - Partition Refresh and Schedule

I have 5 dimensions and a fact table in my DWH. Build SSAS Tabular Model cube and created Partitions for my fact table. Say 2015, 2016 and 2017.Then, deploy my cube in my server. And, I am creating a job to refresh my data for the partition 2017 alone. Not the entire data.
How to achieve this by scheduling a job to refresh all my dimensions and 2017 partition alone?
Thanks in advance. Please anyone.
If you want to process a specific partition you can do it with a xmla script.
How to retrieve it?
From Management studio, Right click on your fact and choose Partitions
Choose your partition (in my example I only have one) and click on the process icon.
Choose your partition
Select your process mode (In your case, process full)
Click and generate your XMLA code
Your XMLA Code:
Now you can create your job:
Otherwise you can create one SSIS Package and use an Analysis Services Execute DDL Task
I did some test and screenshot, but I saw that microsoft did already a nice explanation.
https://learn.microsoft.com/en-us/sql/analysis-services/instances/schedule-ssas-administrative-tasks-with-sql-server-agent
I hope that I helped you.
Regards,
Arnaud

Deploy SSAS Cube script across multiple cube instances

I have an SSAS cube in UAT with multiple changes. I need to now deploy these changes to each cube in live (10+ cubes all with the exact same schema). Then process each cube. What is the best way of doing this?
Currently we do this manually by opening up the changed UAT cube in BIDS, changing the Deployment destination (to point to each live cube), and click Deploy.
Can an SSIS package with a for loop calling an AS Processing Task handle this, for example? Are there XMLA (I don't know much about it) scripts that may be able to?
Thanks!
From SQL Server Management you can save the process of a cube as an XMLA script. Then you can either process it by executing the script or even create a job in SSMS. msdn.microsoft SSAS Administrative Tasks

Move an ssas cube from one analysis services database to another

I have an analysis services database which consists of more than 8 cubes. From that, I want one single cube to be moved in to another analysis services database (this database should have only that cube). Instead of doing all the cube work from scratch, is there a easy way to achieve this ?
An easy way to achieve this would be to just copy all files of your BIDS project to a new folder. Then open the new project in BIDS, delete all dimensions and cubes not needed, change the deployment target, and redeploy.

SSAS: Can I define a Cube In BIDS, but create/process the partitions in SSMS/SSIS?

I am new to SSAS, and exploring Partitioning. My data source is very large (web logs):a few hundred million records.
I would like to define my cube IN BIDS, and create a SSIS Package to create partitions. For now, I am Generating The MDX to Create & process the partitions, and Executing them in SSMS.
I find that this is faster and less error prone them manually creating the partitions using the BIDS UI.
I am trying to understand the expected workflow: because every time I go back to BIDS, and make changes to measures & process the cube the partitions I created in SSMS are deleted and the old partitions I created in BIDS are re-published.
What I would like to be able to do is Refresh my partitions from the server to BIDS. Is This possible? If not, what type of workflow is expected in this case?
Thanks!
Partitions are part of the cube structure, and if you change these outside of BIDS, then you change the structure of the deployed Analysis Services database. BIDS keeps the definition of the structure locally as a set of XML files, the partition definitions are contained in a file with the extension .partitions. If you deploy an Analysis Services project from BIDS, it updates the deployed Analysis Services database to match the structure of the local XML files, thus overwriting whatever you changed outside of BIDS.
You can get a deployed database back to an Analysis Services project as follows: Open BIDS, click File/New/Project, and then select "Import Analysis Services Database" from the "Business Intelligence Projects" project type, and select the directory where you want to save the project files locally in the bottom part of the dialog. As soon as you click OK, a wizard opens that allows you to select the server and Analysis Services database to get the definition from, and when you click Next, starts writing it to the directory that you selected.
Partitions are a part of your cube structure. You should create the partitions in BIDS and then process them based on your requirement using SSIS or SSMS.

SSAS - MSBI - Solution - Suggestions

Is it correct in my understanding that we can build SSAS cubes sourcing from the transaction Systems? I meant the not the live but copy of the Live.
I'm trying to see if there is any scope to address few reporting needs without the need to build a traditional Data Warehouse and then build cubes on top of the data warehouse, instead build cubes to do Financial monthly aggregated reporting needs sourcing from backup copy of the Transaction systems.
Alternatively, if you have any better way to proceed please suggest.
Regards,
KK
You can create a set of views on top of you transactional system tables and then build your SSAS cubes ontop of those views. This would be less effort than creating a fully fledged datawarehouse.
I am a data warehouse developer (and therefore believe in cubes), but not every reporting solution warrants the cost of building a cube. If your short to medium term reporting requirements are fixed and you don't have users requiring data to be sliced differently each week, then a series of fixed reports may suffice.
You can create a series of SQL Server Reporting Services reports (or extract to Excel) either directly against your copied transactional data, or against a series of summarised tables that are created periodically. If you decide to utilise a series of pre-formatted reporting tables, try to create tables that cover multiple similar reports (rather than 1 monthly report table = 1 report) for ease of ongoing maintenance.
There are many other important aspects to this that you may need to consider first. Like how busy is the transaction system, what is the size of the data, concurrency and availability issues etc.
It is absolutely fine to have a copy of your live data and then build a report on the top of it. Bear in mind that the data you see in the report will not be the latest and there will be a latency factor depending on the frequency of your data pull.