Datenvirtualisierung vs. ETL / ELT Prozess
Einer meiner letzten Posts hat wieder mal zu einigen Nachfragen geführt. Ich hatte die Disziplin Datenvirtualisierung kurz vorgestellt und wie diese mit SQL Server Bordmitteln erfolgreich und einfach umgesetzt werden kann. Die Datenvirtualisierung ist Teil einer Referenzarchitektur für Data Warehouses wie ich sie in der Regel für Projekte einsetze.
Eine Frage war, ob bei der Nutzung einer Datenvirtualisierung ein ETL / ELT Prozess damit überflüssig werden würde.
Die Antwort ist definitiv: Nein!
Warum? Eine Datenvirtualisierung ist kein Ersatz für einen ETL/ELT Prozess. Und sie ist nicht zwingend nur für diesen Business Intelligence orientierten Einsatzzwecks zu gebrauchen als Architekturpattern. Eine Datenvirtualisierung hat nur einen Zweck und zwar den Zugriff auf Datenquellen in den nachfolgenden Schichten zu vereinfachen durch das Konzept der Zentralisierung. Dabei wird darauf Wert gelegt, dass die Daten nicht physisch als Kopie vorliegen (wie zum Beispiel in einer Landing Zone) sondern auf diese “verwiesen” wird. Daher auch die Bezeichnung als “virtuell”. Auch klassische Integrationslösungen wie BizTalk oder Master Data Services können davon profitieren.
Dann kam die Frage, was denn nun wiederum das Besondere wäre an der Verwendung von Linked Servern und Views. Wozu da ein Repository?
Erst mit der Nutzung eines Repositorys, welches die Meta Daten der Linked Server und Views enthält, wird für mich daraus ein valides Vorgehen. Natürlich können die Linked Server und Views auch manuell hinzugefügt und später auch gepflegt werden. Aber nur durch die Automatisierung, welche auf Basis des Repositorys möglich wird, ist diese Architekturkomponente wirklich wirksam in der Anwendung. Es entsteht ein echter Nutzen für die Gesamtumgebung.
Und dann natürlich noch der Klassiker. Wenn schon Views, warum dann nicht alles als Views implementieren? Also auch den kompletten ETL/ELT Prozess!
Die Antwort ist wieder definitiv: Nein!
Weil dann wäre ich zumindest nicht mehr bereit den Bewirtschaftungsprozess als ETL/ELT Prozess zu benennen. Dann hätten wir eine Art einfache Schnittstelle. Wenn überhaupt. Nicht dass ich jetzt falsch verstanden werde. Ich habe nichts gegen Views. Ganz im Gegenteil. Im richtigen Kontext können diese sehr nützlich sein. Ein valider ETL/ELT Prozess ist mehr als nur die Summe seiner Technologien. Damit er “überlebt” und wirksam bleibt ist auch immer ein Stück Implementierungsphilosophie notwendig.