Wissen ist Macht – in der heutigen Zeit kommt das Wissen aus Big Data. Fast jede Handlung unseres privaten und beruflichen Alltags erzeugt fortlaufend Daten in digitaler Form. Für den Unternehmenserfolg ist die sinnvolle Verwertung der verfügbaren Daten mittels Business Intelligence (BI) essenziell um wettbewerbsfähig zu bleiben. Eine flexible und zielgerichtete Aufbereitung und Analyse von Unternehmens- und Kundendaten schafft die Grundlage für strategische Managemententscheidungen und die Optimierung von Geschäftsprozessen. Ebenso ist in vielen weiteren Unternehmensbereichen eine Form von Datenintegration unabdingbar, sei es im Risikomanagement, Compliance, Controlling, Accounting oder selbst im operativen Geschäft. Vielen Unternehmen und Organisationseinheiten gelingt es jedoch angesichts isolierter Datensilos und manueller Prozesslisten in Excel nicht, selbst vorhandene Rohdaten gewinnbringend auszuwerten. Wie kommt man hier zu einer wirtschaftlichen Datennutzung?
Extrahieren, Transformieren, Laden
Es ist kein Buch mit sieben Siegeln: Die Aufbereitung und Bereitstellung von Daten für analytische Zwecke ist unter dem Begriff ETL – kurz für „Extract, Transform & Load“ bekannt. Es handelt sich hier um einen, in speziellen Tools, automatisierten Prozess der Datenverarbeitung, der vorgegebene Datenanforderungen mit Hilfe geeigneter Transformationen erfüllt und üblicherweise regelmäßig läuft. Als bewährte Erfolgsstrategie für die effektive Nutzung aller Unternehmensdaten gilt nach wie vor der Aufbau und die Pflege einer Enterprise Data Plattform oder eines zentralen Enterprise Data Warehouse (DWH) im Unternehmen. Dies gilt es zu pflegen, um eine globale Sicht auf einen bereinigten und konsistenten Datenbestand zu ermöglichen. ETL-Prozesse sind prinzipiell zwischen beliebigen Quell- und Zielsystemen (z.B. Reportinganwendungen) in Form von Datenschnittstellen implementierbar. Datenmigrationen von Legacy Systemen oder bei Unternehmenszusammenschlüssen sind ebenso beliebte Anwendungsfälle für ETL, ganz ohne Data Warehouse. Selbst prozessuale Verbesserungen können durch Zusammenführung unterschiedlicher Datensilos dank ETL schon Synergieeffekte in den betreffenden Abteilungen hervorrufen.
Was sind die drei Schritte eines ETL-Prozesses im Detail?
Schritt 1: Extraktion
ETL-Tools bieten diverse Konnektoren z.B. für relationale Datenbanken. Ohne vorgefertigte Konnektoren hilft die Exportfunktion des Vorsystems, deren Output das ETL-Tool als Datei einliest. Neben XLSX und CSV sind auch XML und JSON Dateien nicht selten. Für jedes Format gibt es spezielle Ladeprozesse. Insbesondere die letzten beiden Formate sind aufgrund der Verschachtelung nicht ohne Weiteres zu verarbeiten. Zwar ist es notwendig, das Tabellenschema für eingelesene Daten zu definieren, oft wird es jedoch bereits vorausgefüllt. Unstrukturierte Daten verarbeiten die Programme zur Datenintegration als String.
Job Scheduling Tools (wie bspw. Automic oder Linux Cron Jobs) können ETL-Prozesse regelmäßig zu einem bestimmten Zeitpunkt oder auch nach Verfügbarkeit neuer Quelldaten starten. Erzeugt die Quelle kontinuierlich Echtzeitdaten (Internet of Things, Sensoren, Wetter- oder Finanzmarktdaten), kann man diese mit Streaming-ETL fortlaufend verarbeiten. Des Weiteren können Daten aus dem Internet, beispielsweise aus sozialen Netzwerken für eine Sentimentanalyse oder aus dem Aktienmarkt, über Web Schnittstellen (bspw. REST-APIs) angeschlossen werden.
Werden Daten aus verschiedenen Quellen kombiniert, können individuelle ETL-Strecken parallel, versetzt oder hintereinander laufen, je nachdem an welchem Punkt die Zusammenführung stattfindet.
Schritt 2: Transformation
Ziel der Transformation ist es, die im ersten Schritt geladenen Daten in die gewünschte Zielstruktur zu bringen. Je stärker sich die Quelldaten von der Zielstruktur unterscheiden, desto mehr Transformationen sind erforderlich. Bezieht das ETL-Tool die Quelldaten direkt aus einer relationalen Datenbank über SQL-Abfragen, können, noch vor der Bearbeitung durch die eigentlichen Tool-Funktionen, bereits erste Transformationen bei der Extraktion in SQL erfolgen. Das ist häufig der Fall, um die Menge an Daten zur Transformation einzuschränken.
Transformationen bezwecken zum einen die Bereinigung redundanter, fehlerhafter oder irrelevanter Daten und zum anderen werden durch Kombination verschiedener Quellen neue fachliche Informationen gewonnen. Sortierung, Gruppierung, Aggregation, mathematische Berechnungen, Wertezuordnungen sowie Datentypumwandlung sind hierbei weitere wesentliche Schritte. Es entstehen dabei laufend Zwischenergebnisse in Form neuer Spalten oder auch Tabellen. Letztendlich liegen nach allen Umformungen alle benötigten Informationen im Zielformat vor. Transformationen können auch Validierungsfehler abfangen und heilen, um grobe Datenqualitätsfehler in BI Dashboards und Berichten zu vermeiden. Weitere Transformationen in einem Zielsystem wie Power BI, Qlik oder Tableau sind nicht ausgeschlossen. Jedoch ist es empfehlenswert, Veränderungen der Datenstruktur möglichst nur in einem Tool durchzuführen, da sonst unterschiedliche Toolkenntnisse erforderlich sind und die über Systemgrenzen verteilte Business Logik nur schwer wieder zusammenzuführen ist.
Schritt 3: Laden
Die Speicherung der Transformationsergebnisse erfolgt üblicherweise in einem DWH, welches dann von BI- und Reporting Systemen angezapft wird, um die Daten anwenderfreundlich und zielgerichtet zu visualisieren. Innerhalb des DWH ist es gängig, speziell für das Berichtswesen optimierte Data Marts als zusätzliche Datenschicht aufzusetzen, deren Datenmodell wiederum mit ETL-Prozessen befüllt wird. Self-Service BI als Befähigung aller Mitarbeitenden in einem Unternehmen, Nutzen aus vorhandenen Daten für die tägliche Arbeit zu ziehen, ist in aller Munde. Hätten Sie gedacht, dass es für verlässlichen Nutzen von Self-Service BI einer gezielten Datenaufbereitung in Data Marts bedarf? Unsere Erfahrung zeigt, dass viele Endanwender durch die Komplexität von Datentransformation in Tableau Prep oder mittels Power BI M überfordert sind. Häufig unterscheidet sich dann auch die Aufbereitung zentraler Attribute wie Kundensegmente, Produktkategorien oder die Abbildung der Organisationsstruktur.
Ist eine Historisierung der Daten erforderlich, kann ein ETL-Prozess mit jedem Lauf neue Datensätze anlegen und mit einem Ladedatum und einer Lauf-ID versehen werden. Bei einer Delta-Beladung hingegen aktualisiert er lediglich vorhandene Datensätze und fügt erstmalig angelieferte ein. Dieser Prozess ist jedoch ressourcenintensiver. Alternativ kann die Tabelle vor der Neubeladung gelöscht werden, wobei nicht mehr angelieferte Daten verloren gehen. Diesen Nachteil kann man minimieren, indem man z.B. nur Daten aus dem aktuellen Berichtszeitraum löscht. Wichtige Zwischenergebnisse sollten auch in Datenbanktabellen gespeichert werden, um deren Nachvollziehbarkeit zu gewährleisten.
ELT statt ETL
Vertauscht man die letzten beiden Schritte und lädt sämtliche Daten in die Datenbank, bevor man transformiert, wird das DWH schnell zu einem Data Lake mit Rohdaten. Sämtliche Daten befinden sich somit in einem zentralen System, was einerseits mehr Flexibilität und Nachvollziehbarkeit ermöglicht, aber andererseits auch unübersichtlich werden kann. Hier empfiehlt sich noch viel stärker als im klassischen DWH eine konsequente Beschreibung der Data Lake Metadaten in einem Datenkatalog (Data Governance). Für moderne Anwendungsfälle im Data Science und Machine Learning Bereich, bietet ein Data Lake mit der Breite und Menge verfügbarer Daten wiederum eine bessere Basis.
Oft reicht es aus, Datenumformungen direkt im nativen SQL unmittelbar auf der Datenbank auszuführen, womit man wesentlich performanter bei der Beladung und Nutzung der Daten ist. Bei unstrukturierten Daten sowie semistrukturierten XML und JSON-Dateien könnten aber weiterhin Transformationsschritte mithilfe von ETL-Tools außerhalb der Datenbank erforderlich sein. Werden semi- und unstrukturierte Daten in einer Hadoop Plattform persistiert, sind erst Transformationsschritte für die Nutzung der darin enthaltenen Daten durch geeignete Abfragen in Spark oder Python notwendig, bevor sie dann z.B. in ein Hive Data Lake geladen werden können.
ETL-Tools
Die meisten Tools haben eine visuelle Darstellung des Datenflusses durch Fluss-Diagramme aus diversen ETL-Operationen gemein. Per Drag-and-Drop und über Drop-Down-Menüs mit wenig Tastatureinsatz, konfiguriert man die Datenflüsse. Mindestens die unter Schritt eins, zwei und drei beschriebenen Operationen sollten hierbei integrierbar sein.
Idealerweise sollte ein ETL-Tool folgende Eigenschaften besitzen
- Benutzerfreundliche, intuitiv bedienbare Benutzeroberfläche
- Viele Schnittstellen zu unterschiedlichen (Cloud-)Systemen und Anwendungen
- Performance und Skalierbarkeit für große Datenmengen
- Effiziente Testmöglichkeiten und Fehleranalyse mit schneller Sicht auf (Zwischen-) Ergebnisse
- Modularisierung, Parametrisierung und Wiederverwendbarkeit von Transformationsroutinen
- Dokumentation innerhalb des Tools
Darüber hinaus gibt es oft auch zusätzlich praktische Features wie Ausführung von Skripten (Java, Shell, SQL, Spark), Email-Versand, FTP-Verbindungen und Dateioperationen (Verschieben, Umbenennen, Löschen, Komprimieren etc.). Damit kann man z.B. verarbeitete Quelldateien in einen separaten Ordner verschieben.
Viele Hersteller für Datensysteme bieten ETL-Produkte an, die jedoch nicht auf die eigene Plattform beschränkt sind, sondern verschiedene Plattformen anbinden können. Bekannte Tools sind
- Oracle Warehouse Builder
- Oracle Data Integrator (ODI)
- Microsoft SQL Server Integration Services (SSIS)
- SAP BusinessObjects Data Integrator
- IBM InfoSphere DataStage
- Informatica PowerCenter
Im Open Source Umfeld stehen z.B. die folgenden Alternativen zur Verfügung
- Pentaho Data Integration (PDI)
- CloverETL
- Talend Open Studio
Im nächsten Teil dieser Beitragsserie beleuchten wir die Vor- und Nachteile von ETL-Tools.
Wie ADVISORI Ihnen hilft
Das Team Data Integration & Business Intelligence von ADVISORI verfügt über ein breites Spektrum an Kompetenzen in verschiedenen datengetrieben Technologien. Ob Sie eine unternehmensweite Data Platform oder eine spezifische Reporting Lösung aufbauen wollen, wir unterstützen Sie gerne in allen Projektphasen, vom Requirements Engineering, sowie der Planung der IT-Architektur bis hin zur Datenbank- und ETL-Implementierung, inkl. Test und Go-Live.
Für welche Themen interessieren Sie sich? Geben Sie uns gerne Feedback.
Über den Autor
Dr. Naseemuddin Khan ist als Unternehmensberater mit Schwerpunkt Datenintegration für ADVISORI bei unseren Kunden tätig. Er verfügt über mehrere Jahre Erfahrung in der Entwicklung von Datenmodellen/-schnittstellen sowie ETL-Prozessen im Regulatorik-, Compliance- und Accounting-Umfeld von Banken. Nicht nur legt er großen Wert auf eine technisch effiziente und elegante Lösung, sondern stellt auch, durch sein sehr gutes Verständnis von Bankprodukten, die fachliche Korrektheit der Implementierung sicher.