amo und adomd.net mit dem sql server 2012 (tabular & olap)

38
Data Warehouse ETL OLAP Data Quality Reporting Services Analysis Services BI Methodology BI Lifecycle Skill Improvment Data Profiling Architecture Dimensional Modeling BI Strategy Patterns Consulting Coaching Coaching MDM AMO und ADOMD.NET mit dem SQL Server 2012 by Sascha Lorenz

Upload: sascha-lorenz

Post on 10-May-2015

425 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

AMO und ADOMD.NET mit dem SQL Server 2012

bySascha Lorenz

Page 2: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Über mich…

• Sascha Lorenz • Lead Consultant, Coach & Trainer• PSG Projekt Service GmbH – The SQL Server Company,

Hamburg• Unsere Kunden sind Bundesbehörden, Reedereien und

Dienstleister (Banken, Projekt Entwicklung usw.)• Engagiert in der Deutschen PASS Community für Hamburg

Follow me on Twitter, Facebook and http://saschalorenz.blogspot.com

Page 3: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Ziele für diese Session

• Hinweis auf Technologie:– Analysis Management Objects – ADOMD.NET

• Neugierig machen…• Es wurde Zeit für ein Update! • Hinweise und Ideen für den Einsatz

Page 4: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Analysis Management Objects

„Bei den Analysis Management Objects (AMO) handelt es sich um die vollständige Bibliothek von Objekten mit programmgesteuertem Zugriff, die einer Anwendung ermöglicht, eine gerade ausgeführte Instanz von Microsoft SQL Server Analysis Services zu verwalten.“

Page 5: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Ja, wir sprechen übers programmieren!

Kein Scherz!• Es gibt keinerlei Einschränkungen, da der SQL

Server objektiv eh nur aus Diensten besteht.• Alle Werkzeuge des SQL Servers erzeugen bzw.

bearbeiten nur eine Beschreibung, welche auf die Dienste übertragen wird.

Page 6: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Nun die große Frage…

Wozu?

Page 7: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Meine Lernkurve

Begeisterung für die Technologie

Repository, Repository…

Page 8: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Analysis Management Objects

„Bei den Analysis Management Objects (AMO) handelt es sich um die vollständige Bibliothek von Objekten mit programmgesteuertem Zugriff, die einer Anwendung ermöglicht, eine gerade ausgeführte Instanz von Microsoft SQL Server Analysis Services zu verwalten.“

Parametrisierung…

Page 9: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

MS BI Middleware

Repository(DB)

SSIS SSASSSRS

Bus

DWH

Page 10: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Meine Lernkurve

Begeisterung für die Technologie

Wirksamkeit von Management Konzepten

Repository, Repository…

Technologie ohne Konzept ist wirkungslos!

Page 11: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Universalwerkzeuge Analysis Services

Zwei Bibliotheken für zwei Zielplattformen

ADOMD.NET

OLAP

TM

AMO

Page 12: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Universal?

OLAP Tabular

Page 13: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Kurzer Blick auf ein OLAP Projekt

• SSAS dreht sich nicht um Cubes!

• Da ist immer eine Datenbank um den Cube herum!

• Wir arbeiten also mit Datenbanken…

Page 14: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Analysis Services ObjectsÜberblick

SSAS DBs

Data Sources

Data Source Views

Dimensions

Attributes

Hierarchies Levels

Cubes

MDXScript

Measure Groups

Measures

Partitions

Page 15: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Analysis Services…using Microsoft.AnalysisServices;…using (Server svr = new Server()){

svr.Connect(„myServer");

Database db = svr.Databases.Add(pDatabaseName); db.DataSourceImpersonationInfo = new

ImpersonationInfo(ImpersonationMode.ImpersonateServiceAccount);db.Update();

DataSource ds = db.DataSources.Add(pDSName);ds.ConnectionString = pDSConnString;ds.Update();

Page 16: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Analysis Services…DataSourceView dsv = db.DataSourceViews.Add(pDSVName);dsv.DataSourceID = pDSName;dsv.Schema = new DataSet();

OleDbConnection connection = new OleDbConnection(dsv.DataSource.ConnectionString);connection.Open();

rows = tbl.Select("keypath = 'Database/DSV/Table'");foreach (DataRow row in rows)

AddTable(dsv, connection, row["keyvalue"].ToString());

?

Page 17: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Analysis Services…

Page 18: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Analysis Services…rows = tbl.Select("keypath = 'Database/DSV/Relation'");foreach (DataRow row in rows){

string[] pRelation = row["keyvalue"].ToString().Split(';');

AddRelation(dsv, pRelation[0],pRelation[1],pRelation[2],pRelation[3]);}

dsv.Update();

Page 19: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Analysis Services…dim = db.Dimensions.Add(pDimensionName);dim.Source = new DataSourceViewBinding(pDSVName);…

attr = dim.Attributes.Add(pAttributeName);…

attr.KeyColumns.Add(CreateDataItem(db.DataSourceViews[0], pKeyColumn[1], pKeyColumn[2]));

attr.NameColumn = CreateDataItem(db.DataSourceViews[0], pNameColumn[0], pNameColumn[1]);

Page 20: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

DemoAMO für zwei…

Page 21: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Analysis Services ObjectsÜberblick für TM

SSAS TM DB

Data Source

Data Source View(Sandbox)

Dimensionen

Attributes

Hierarchien Levels

Cubes(Model)

Measure Groups

Measures

Partitions

Page 22: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

DemoAMO2Tabular

Page 23: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Wie können wir AMO nutzen?

Auslesen

• Inventarisieren• Dokumentiere

n

Erzeugen

• „From Scratch“• Duplizieren

Ändern

• Refactoring• Deployment

Page 24: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Dokumentieren

• Dokumentation ist ein wesentlicher Teil eines Projekt Risikomanagements

• Dokumentation ist Kommunikation• Nur, verdammte Axt, was ist eine

Dokumentation? • These von mir:

Über 80% aller Dokumentationen sind in Wirklichkeit nichts weiter als ein Inventar!

Page 25: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Dokumentieren

• Eine gute Dokumentation sollte dadurch Ressourcen sparen, indem sie redundante Fragestellungen vermeidet.

• Also nicht nur WAS sondern auch das WARUM dokumentieren.

• Des Weiteren ist sie klar vom Betriebshandbuch abzugrenzen.

Gleich komm

ich drauf…

Page 26: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Wie können wir AMO nutzen?

Auslesen

• Inventarisieren• Dokumentiere

n

Erzeugen

• „From Scratch“• Duplizieren

Ändern

• Refactoring• Deployment

Page 27: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Deployment

• Auslieferung von Ergebnissen an Zielsysteme

Entwicklungssystem(e)

Test System(e)

Integrationstest System(e)

Produktive System(e)

Page 28: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Deployment

• Zerlegen von Ergebnissen in Artefakte– Kleinstmögliche/sinnvolle Einheit für eine

Ergebnissgattung… • Artefakte haben Abhängigkeiten untereinander• Beispiele für Artefakte:– Spalte in einem Vorsystem– Spalte in einer Dimension– Attribute in einer Cube Dimension– Ein RDL– Ein DTSX (Diskussion bitte…)

Page 29: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Quellcode Systeme?

• Nice to have und sind kein Deployment System!

Page 30: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Dokumentation durch Deployment!

Nun die Idee… welche tatsächlich auch so produktiv in Projekten eingesetzt wird.

• Es wird nur das Ergebnis ausgeliefert, welches sauber im Deployment System ist.

• Artefakte müssen „dokumentiert“ werden.• Damit ist alles was jemals ausgeliefert wurde

auch dokumentiert!

Und deswegen brauchte man in

diesem Projekt u.a.

Analysis Management Objects !

Page 31: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Kurz zur Implementierung…

• Entwicklungsumgebungen:– Visual Studio C# / VB– SSIS Script Task– PowerShell

Page 32: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Universalwerkzeuge Analysis Services

Zwei Bibliotheken für zwei Zielplattformen

ADOMD.NET

OLAP

TM

AMO

Page 33: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

ADOMD.NET

„ADOMD.NET ist ein Microsoft.NET Framework-Datenanbieter, der auf die Kommunikation mit Microsoft SQL Server Analysis Services ausgelegt ist.“

Page 34: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

BeispielAdomdConnection mdcon = new AdomdConnection(„Connectionstring“);

mdcon.Open();

AdomdCommand cmd = mdcon.CreateCommand(); cmd.CommandText = „MDXQuery“;

CellSet cs = cmd.ExecuteCellSet();

Wir machen hoffentlich was Nützliches mit dem CellSet…

mdcon.Close();

Page 35: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

CellSet

Page 36: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

CellSet

int x = cs.Axes[0].Positions.Count; // Anzahl Spaltenint y = cs.Axes[1].Positions.Count; // Anzahl Zeilen

cs.Axes[0].Positions[xi].Members[0].Caption;cs.Axes[0].Positions[xi].Members[0].UniqueName;

Value = cs[xi,yi].Value.ToString();

Page 37: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

Analysis Service 2012

• Nun kann Analysis Services auch DAX• Früher war meine Welt ein Würfel• Nun ist er eine Fläche…

Page 38: AMO und ADOMD.NET mit dem SQL Server 2012 (Tabular & OLAP)

Data WarehouseETL OLAPData Quality Reporting ServicesAnalysis Services

BIMethodology

BI LifecycleSkill Improvment Data Profiling

Architecture

Dimensional Modeling

BI Strategy

Patterns

Consulting

Coaching

Coaching

MDM

DemoADOMD.NET für TM