Datenvirtualisierung mit Master Data Services (und weiteren SQL Server Diensten) unterstützen
Es gibt da draußen ja eine ganze Reihe an Disziplinen, welche das aktive Management von Daten erleichtern sollen. Viele dieser Disziplinen oder auch Konzepte werden von Software Herstellern mit eigenen Produkten oder zumindest Technologien bedient.
Ein prominentes Beispiel dafür ist u. a. Master Data Management. Grundsätzlich lässt sich “das” mit Bordmitteln lösen, dennoch bieten Hersteller dafür eigenständige Produkte an, welche diese Herausforderung deutlich einfacher und damit besser lösen. Microsoft selbst legt seiner Datenplattform SQL Server mittlerweile in der zweiten Version die Master Data Services dafür bei.
Eine weitere dieser Disziplinen ist die sogenannte Datenvirtualisierung (Data virtualization).
Vieles wird ja heutzutage virtualisiert. Server, Desktops, Anwendungen und Storage. Warum also nicht auch Daten?
Was ist nun Datenvirtualisierung? Der Wiki Artikel dazu verrät uns, dass es im Groben darum geht, dass der Zugriff auf Daten mittels einer weiteren Abstraktionsebene virtualisiert wird. Wer hier jetzt spontan an Views (Sichten…) denkt, liegt da gar nicht so falsch. Des Weiteren geht es darum, dass der Zugriff auf Daten zentralisiert wird ohne die Notwendigkeit die Daten zu replizieren bzw. zu duplizieren. Und wer hier jetzt an Linked Server (Verbindungsserver…) denkt. Ja, genau.
Ein einfacher und valider Ansatz ist damit sich für alle Datenbanken in der Organisation auf einem SQL Server System als Linked Server einzurichten und diese wiederum auf Basis von Views freizugeben. Nennen wir es einfach mal “extrem Viewing”.
Eine solche Abstraktionsschicht werden viele schon mal im Rahmen eines Business Intelligence oder Datenintegration Projektes gebaut haben. Nur haben wir es viele von uns so bisher nicht genannt.
Es hilft sich die Bereitstellung von Daten in der Organisation als Dienst vorzustellen. Es wird also nicht direkt auf den jeweiligen Datenbankserver zugegriffen, sondern auf einen zentralen Server, welcher als Dienst die Anbindung an die Daten (und damit “echten” Datenbanken) ermöglicht.
Wie wird so etwas nun verwaltet? Nicht ohne Grund nenne ich so ein Szenario ja “extrem Viewing” :-) . In der Regel löse ich das als Repository Fan über ein Managed Linked Views (MLV) Szenario mit dem ich die Linked Server und Views zentral verwalte.
Weitere Beispiele diesen direkten Zugriff, häufig auch als Federated Database System bezeichnet, können ROLAP Cubes oder in BISM DirectQuery Mode in Tabular Model Szenarien sein. Wir sind da immer in quasi Echtzeit unterwegs.
Bleiben wir aber noch kurz bei dem Gedanken, dass Daten als Dienst bereitgestellt werden in einer Organisation, dann wird schnell der Ruf nach Qualität in den Daten laut. Hier hilft der direkte Zugriff auf die Daten nicht weiter. Da muss ein Stück Logik zwischen. Idealerweise eine Technologie, welche Daten eh auf Basis Views bereitstellt und sich mittels eines Repositorys steuern lässt, also unser MLV Szenario nahtlos ergänzend bzw. unterstützt.
Hier kommen wieder mal die Master Data Services (MDS) des SQL Servers ins Spiel. Mit diesen lässt sich eine Datenvirtualisierungslösung hervorragend unterstützen und für den Nutzer der Daten völlig transparent einbinden. Meine Erfahrung mit den Master Data Services haben gezeigt, dass sich die MDS sehr einfach und schnell in solche Umgebungen integrieren lassen. Es stehen alle Funktionen der MDS für die Steigerung der Qualität der Daten zur Verfügung bis hin zur Einbindung der Data Quality Services (DQS) des SQL Servers.
Kommen wir zurück zum Wiki Artikel über Datenvirtualisierung. In diesem werden die Features einer solchen Lösung kurz skizziert:
- Abstraction
- Virtualized Data Access
- Transformation / Integration
- Data Federation
- Flexible Data Delivery
Merken wir uns, dass die Anforderungen an eine Datenvirtualisierungslösung vom SQL Server auf jeden Fall erfüllt werden und entsprechende Projekte damit umsetzbar sind. Sofern ein Ansatz mittels eines Repositorys gewählt wird, wie mein Managed Linked Views Konzept, dann kann der Aufwand für den Betrieb sehr schlank gehalten werden. Hängt natürlich auch von der Größe der Umgebung und der Komplexität ab, ob dieser Ansatz sich rentiert. Meine Erfahrungen mit Repositorys hat gezeigt, dass sich das Beschäftigen mit solchen Strukturen durchaus lohnt in größeren Umgebungen.
Auch wenn “der Kunde” nicht direkt nach einer Datenvirtualisierung fragt, macht diese Art der Architektur durchaus Sinn bei BI und Integrationsprojekten, um eine durchaus nützliche Abstraktionsschicht anbieten zu können. Der dafür notwendige Aufwand ist eine gute Investition in die Zukunft einer Lösung und schafft eine Investitionssicherheit für ein Projekt.
Des Weiteren ist es ein Beispiel dafür, dass eine “neue” Disziplin nicht immer gleich auch ein neues Produkt in einer IT-Landschaft benötigt.