Als je bij een Microsoft Analysis omgeving te maken hebt met meerdere servers met verschillende versies, zul je altijd een afweging moeten maken hoe je de servers onderling in sync houdt.
In het specifieke geval van SSAS mis je in de standard editie functionaliteit, zoals semi additive measures die wel in enterprise beschikbaar zijn. Op het moment dat je koppelingen tussen 2 servers (std en ent) wilt maken, vallen er een aantal scenario’s af, zoals linked objects, synchronisatie en het gebruik van de deployment wizard.
Als we specifiek de functionaliteit van de semi additive measures bekijkt geldt dat je deze zeker wilt gebruiken. Kortom, op dit punt wil je geen concessies doen door ze niet te gebruiken.
Welke opties resteren er dan om een kubus ook op een andere machine (std editie) te deployen:
- Sloop de semi additive measures eruit. Vanaf dat moment heb je te maken met meerdere te onderhouden versies;
- Maak een backup en restore deze op de standard server.
Het interessante van deze laatste optie is dat de kubus wel benaderd kan worden door rapportages, ook als er semi additive measures aanwezig zijn. Dit levert echter weer een interessante uitdaging op want we kunnen de kubus niet processen met nieuwe data – semi additive foutmelding. Dit houdt dus in dat je elke keer als je nieuwe data op de standard server nodig hebt, een backup/restore procedure handmatig moet uitvoeren en dat is natuurlijk een slechte optie. Hiervoor zijn namelijk geen SSIS taken beschikbaar. Wel voor SQL Databases maar niet voor SSAS databases.
De volgende oplossing is beschikbaar, deze zorgt ervoor dat je niet hoeft te upgraden naar de enterprise versie: creëer voor alle verschillende onderdelen van de kubus (database, data source, dsv, dimensies) XMLA scripts, en execute deze in een SSIS package via de “Analysis Services Execute DDL” taak. Vul vervolgens de dimensies en kubus met nieuwe data met de “Analysis Services Processing” taak. Maak een backup via dezelfde DDL taak, en lees deze op de andere server in.
Het kost even om deze XMLA scripts te genereren en je hebt alsnog een onderhoudsprocedure nodig op het moment dat de dimensies of de kubus van structuur veranderen, maar dat is natuurlijk veel minder werk dan het dagelijks uitvoeren van een procedure.