Sonntag, 7. Oktober 2012

SQL Server Data Warehouse - Mehr als nur SSIS !

Immer wieder stelle ich fest, dass sowohl kaufmännische Entscheider als auch IT-Leiter in größeren Organisationen die Vorstellung haben, dass ein Data Warehouse auch ein extra Produkt einer Business Intelligence Umgebung sein müsste.

Gar nicht so selten sind Zitate wie: “Ach so, sie nutzen den SQL Server auch als Data Warehouse. Nun ja, interessant. Kann man wohl machen… Dennoch…”.

Da war das Marketing der Marktbegleiter einfach gut! By the way, bei denen ist das Data Warehouse auch eine relationale Datenbank. Also, ähm, wenn die denn eines einsetzen. Nur diese Diskussion sollten wir an anderer Stelle führen. Okay, ein Satz dazu. Sich gegen ein Data Warehouse zu entscheiden ist keine Frage der Auswahl eines BI Tool Anbieters, sondern eine Architektur Frage, welche gewissenhaft & seriös beantwortet werden muss. </Ende>

Nur kurz angemerkt. Wenn wir uns über wirkliche große Szenarien unterhalten, dann ist JEDE relationale Engine JEDER etablierten Datenbank irgendwann am Ende. Und aufgepasst, fast jeder Kunde (intern wie extern) ist der Meinung, dass er wirklich wirklich viele Daten hat. Mit “viele Daten” meine ich aber gerade gehobene Terabyte Mengen oder etwas in der Nähe von Petabytes. Dafür gibt es dann tatsächlich extra Produkte von Microsoft und auch anderen Herstellern. Nur, wer hat die Herausforderung schon? :-)

Zurück zum Thema.

Ein Data Warehouse zu betrieben ist weit mehr als nur ein Tool für den ETL/ELT Prozess einzusetzen und einen schönen Spaltenzuordnungsdialog (Mapping) zu haben. Auch das gilt für fast alle Hersteller. Nur wird das häufig bei der Auswahl einer Lösung übersehen.

Auch dafür ein Zitat: “Dafür setzen wir das ETL Tool von bla ein…”. Weil wenn das Tool stimmt, dann klappt das auch mit dem relationalem Data Warehouse. Dem ist nicht so.

Wo ich mit mir verhandeln lasse, sind DWH Frameworks, welche sich um die relationale Engine “legen”. Nur häufig sind diese recht überschaubar ausgelegt und unterstützen nicht durchgängig und in aller Konsequenz die Anforderungen an ein Enterprise Data Warehouse (Welche waren das noch gleich…). Dazu kommt, dass solche dann oft wieder geschlossene Lösungen sind. Software im Enterprise Umfeld muss offen sein. Nicht nur mit der herstellereigen Oberfläche zu bedienen sein. Integration ist das Stichwort und das ist für mich ein echtes unverhandelbares Merkmal für die Fähigkeit einer Software “Enterprise Ready” zu sein oder halt auch nicht.

Das Design einer Data Warehouse Infrastruktur ist auch immer Architekturaufwand. Vieles ist Best Practice. Es muss nur noch alles zusammengeführt werden, was benötigt wird.

Für mich immer wieder notwendige Funktionen der relationalen Datenbank Engine für den Betrieb eines klassischen Enterprise Data Warehouse sind:

  • Partitionierung
  • Komprimierung
  • Service Broker
  • Verschlüsselung
  • Resource Governor
  • Columnstore-Indizes (seit 2012)
  • Clustering / AlwaysOn Availability Groups (seit 2012)

Ähm, und ja, dafür braucht man die Enterprise Edition.

Natürlich kommt dann obendrauf noch die ganze Analyse- und Frontend-Nummer. Nur das ist dann wieder etwas ganz anderes als das eigentliche Data Warehouse, oder? :-)