Multi-client_SSAS_deployment_What

Multi-client SSAS deployment
What's MDS got to do with?
Our Sponsors
Who am I?
Gabi Münster
 BI consultant at oh22data AG since 2010
 Experience with SQL Server since version
2000
 Main topics: SSAS (Multidimensional/Tabular),
SSRS, MDS, PowerBI
 Speaker at chapter meetings and national and
international conferences
Agenda
 Multi-client SSAS deployment
 Motivation
 A little bit of theory
 How can a config look like?
 How to deploy a multidimensional database with AMO?
 How to deploy a Tabular model with TOM?
 Resumé
Motivation
 Enhancement of testing possibilites
 Enabling of staff
 Realization of multi-szenario deployments
 Version control
 Added value for documentation
A little bit of theory (I)
1.
Understand the SSAS data model
1.
Very flexible
2.
Lots of objects
3.
Large variety of attributes
4.
Deeply interlaced
 Very complex
A little bit of theory (II)
2. Choose the language:
- ASSL => XML based
- AMO => .NET class library
Server srv = ServerConnect(strConn);
Database db = CreateDatabase(srv, strDBName, true);
if (db == null)
{
return "Failure";
}
DataSource ds = CreateDataSource(db, "AdventureWorksDW2014",
"Provider=SQLNCLI11.1;Data Source=.\\SQL2016;Integrated Security=SSPI;Initial
Catalog=AdventureWorksDW2014");
if (ds == null)
{
return "Failure";
}
<Server>
<Name/>
<ID/>
<Description/>
<Version/>
<Edition/>
<Databases>
<Database>
<Name/>
<ID/>
<CreatedTimestamp/>
<LastSchemaUpdate/>
…
<Dimensions>
<Dimension>
<Name/>
<ID/>
…
<Source>
<!-- Binding -->
</Source>
…
<DimensionPermissions>
<DimensionPermission xsi:type="Permission">
...
...
...
...
</Dimension>
</Dimensions>
<Cubes>
<Cube>
<Name/>
<ID/>
</Databases>
<Roles>
<Role>
<Name/>
<ID/>
</Role>
</Roles>
...
</Server>
A little bit of theory (III)
Understand the data model
1.
1.
Meant for comprehensibility
2.
Less objects
3.
Less interdependencies
4.
Easier to understand and
maintain
A little bit of theory (IV)
2. Choose the language:
- TMSL => JSON based
- TOM => .NET class library
// Generate a new database name and use GetNewName
// to ensure the database name is unique.
//
string newDatabaseName =
server.Databases.GetNewName(strDatabaseName);
string newDatabaseID =
server.Databases.GetNewID(strDatabaseID);
//
// Instantiate a new
// Microsoft.AnalysisServices.Tabular.Database object.
//
var dbWithTable = new Microsoft.AnalysisServices.Tabular.Database()
{
Name = newDatabaseName,
ID = newDatabaseID,
CompatibilityLevel = 1200,
StorageEngineUsed = StorageEngineUsed.TabularMetadata,
};
How can a config look like?
1.
2.
3.
What of the data models are you using?
What is „static“, what needs configuration?
Build step by step
Demo
How to deploy a multidimensional database with
AMO?
1.
2.
Example: .Net
Choose integration:
1.
2.
3.
Stand-alone application
Assembly to use in SSIS
…
Demo
How to deploy a Tabular model with AMO?
1.
2.
Example: .Net
Choose integration:
1.
2.
3.
Stand-alone application
Assembly to use in SSIS
…
Demo
Resumé
Criteria
Assessment
Funktionality
Covers all necessary functionality
Implementation effort
High!
Potential benefit
Also high
Cost/benefit
evaluation necessary
Especially meaningful for consulting companies with
different customers (reusability)
Some useful links
 AMO für multidimensionale Datenbanken:
AMO Concepts and AMO Model
 ASSL
 Analysis Services Scripting Language (ASSL for XMLA)
 AMO für Tabular (TOM)
Introduction to the Tabular Object Model (TOM) in Analysis Services AMO
 TMSL
 Tabular Model Scripting Language (TMSL) Reference
Any questions?
How did you like it?
Please give us feedback!
to the event:
www.sqlsaturday.com/579/eventeval.aspx
to me as a speaker:
www.sqlsaturday.com/579/sessions/sessionevaluation.aspx
Ressources
SQL Server 2016 in 15 Minuten
https://channel9.msdn.com/Series/SQLServer-2016-in-15-Minuten
SQL PASS Austria Homepage
http://austria.sqlpass.org
SQL PASS Austria Meeting Archive
http://sdrv.ms/ZFVdnM
Thank You!