Extract, Transform, Load (ETL) ist ein dreiphasiger Rechenprozess, der verwendet wird, um Daten aus einer oder mehreren Quellen in einen Ziel-Datencontainer wie ein Data Warehouse, einen Data Lake oder einen operativen Datenspeicher zu integrieren. Der Prozess umfasst das Extrahieren von Rohdaten aus Quellsystemen, das Transformieren durch Bereinigen und Umstrukturieren sowie das Laden in das Ziel. ETL wird typischerweise durch Softwareanwendungen automatisiert, kann jedoch auch manuell von Systemoperatoren durchgeführt werden. Es ist eine grundlegende Technik im Data Warehousing und hat sich weiterentwickelt, um cloudbasierte und Echtzeit-Streaming-Szenarien zu unterstützen.
ETL-Systeme sind darauf ausgelegt, Datenqualität und -konsistenz durchzusetzen. Sie extrahieren Daten aus heterogenen Quellen, wenden Validierungs- und Transformationsregeln an und stellen sicher, dass die Ausgabe dem Zielschema entspricht. Eine gut gestaltete ETL-Pipeline kann präsentationsreife Daten liefern, die es Anwendungsentwicklern und Endbenutzern ermöglichen, Entscheidungen ohne zusätzliche Verarbeitung zu treffen. Der Prozess wird häufig verwendet, um Daten aus mehreren Anwendungen zu kombinieren, die von verschiedenen Anbietern entwickelt oder auf separater Hardware gehostet werden können und oft von verschiedenen Interessengruppen verwaltet werden. Beispielsweise könnte ein Kostenrechnungssystem Daten aus Lohn-, Verkaufs- und Einkaufssystemen integrieren.
Phasen
ETL besteht aus drei unterschiedlichen Phasen: Extraktion, Transformation und Laden. Jede Phase hat spezifische Ziele und Herausforderungen, und zusammen bilden sie eine Pipeline, die Daten von der Quelle zum Ziel bewegt.
Extraktion
Die Extraktionsphase umfasst das Abrufen von Daten aus Quellsystemen. Dies ist oft der kritischste Schritt, da das korrekte Extrahieren von Daten die Grundlage für nachgelagerte Prozesse legt. Quellen können relationale Datenbanken, Flatfiles, XML, JSON, nicht-relationale Strukturen wie IBM Information Management System oder Formate wie Virtual Storage Access Method (VSAM) und Indexed Sequential Access Method (ISAM) umfassen. Daten können auch über Webcrawler oder Datenscraping aus externen Quellen abgerufen werden. In einigen Fällen kann ETL Daten direkt von der Quelle zum Ziel streamen, ohne Zwischenspeicherung.
Ein wesentlicher Bestandteil der Extraktion ist die Datenvalidierung, die prüft, ob Daten erwartete Werte in einer bestimmten Domäne aufweisen, wie Muster, Standardwerte oder Listen. Wenn Daten Validierungsregeln nicht bestehen, können sie vollständig oder teilweise abgelehnt werden. Abgelehnte Daten werden idealerweise an das Quellsystem zur Analyse und Korrektur zurückgemeldet, ein Prozess, der manchmal als Data Wrangling bezeichnet wird.
Transformation
In der Transformationsphase wird eine Reihe von Regeln oder Funktionen auf die extrahierten Daten angewendet, um sie für das Laden vorzubereiten. Datenbereinigung ist eine Schlüsselfunktion, die sicherstellt, dass nur korrekte Daten an das Ziel gelangen. Herausforderungen entstehen, wenn verschiedene Systeme inkompatible Zeichensätze oder Formate verwenden. Häufige Transformationsarten umfassen:
- Auswählen nur bestimmter Spalten zum Laden oder Ignorieren von Datensätzen mit fehlenden Werten.
- Übersetzen codierter Werte, wie das Konvertieren von Geschlechtscodes von "1"/"2" zu "M"/"F".
- Kodieren von Freiformwerten, wie das Zuordnen von "Männlich" zu "M".
- Ableiten neuer berechneter Werte, wie verkaufsbetrag = menge * einzelpreis.
- Sortieren von Daten zur Verbesserung der Suchleistung.
- Zusammenführen von Daten aus mehreren Quellen und Deduplizieren von Datensätzen.
- Aggregieren von Daten, wie das Zusammenfassen des Gesamtumsatzes pro Filiale oder Region.
- Generieren von Surrogat-Schlüsselwerten.
- Transponieren oder Pivotieren von Daten, Aufteilen von Spalten oder Disaggregieren wiederholter Spalten.
- Nachschlagen und Validieren von Daten aus Referenztabellen.
Fehlgeschlagene Validierung kann je nach Regeldesign und Ausnahmebehandlung zu vollständiger Ablehnung, teilweiser Ablehnung oder keiner Ablehnung führen. Viele Transformationen können Ausnahmen erzeugen, wie wenn eine Codeübersetzung auf einen unbekannten Code stößt.
Laden
Die Ladephase fügt die transformierten Daten in das Ziel ein, das eine einfache durch Trennzeichen getrennte Flatfile oder ein komplexes Data Warehouse sein kann. Der Prozess variiert je nach organisatorischen Anforderungen. Einige Data Warehouses überschreiben vorhandene Informationen mit kumulativen Daten, oft in täglichen, wöchentlichen oder monatlichen Zeitplänen. Andere fügen neue Daten in historischer Form in regelmäßigen Abständen hinzu, wie stündlich. Beispielsweise könnte ein Data Warehouse, das Verkaufsaufzeichnungen für das letzte Jahr führt, Daten überschreiben, die älter als ein Jahr sind, während die Daten des aktuellen Jahres in historischer Weise beibehalten werden. Der Zeitpunkt und der Umfang des Ersetzens oder Anhängens sind strategische Entscheidungen, die von Zeit- und Geschäftsanforderungen abhängen. Komplexere Systeme können eine Historie und ein Prüfprotokoll aller Änderungen führen.
Während des Ladens gelten Datenbankbeschränkungen, die im Schema definiert sind, wie Eindeutigkeit, referenzielle Integrität und Pflichtfelder. Trigger, die beim Laden von Daten aktiviert werden, setzen diese Regeln ebenfalls durch, was zur Ablehnung ungültiger Datensätze führen kann.
Varianten und moderne Nutzung
ETL hat eine Variante namens ELT (Extract, Load, Transform), bei der Daten vor der Transformation in das Ziel geladen werden. Dieser Ansatz wird zunehmend im cloudbasierten Data Warehousing verwendet, wo das Zielsystem über leistungsstarke Verarbeitungsfähigkeiten verfügt. Sowohl ETL als auch ELT werden nicht nur in der Stapelverarbeitung, sondern auch in Echtzeit-Streaming-Szenarien angewendet, was eine nahezu sofortige Datenintegration ermöglicht.
Moderne ETL-Tools unterstützen oft Cloud-Plattformen wie Amazon Web Services, Azure und Google Cloud und können große Datenmengen aus verschiedenen Quellen verarbeiten. Der Aufstieg von künstlicher Intelligenz und maschinellem Lernen hat ETL ebenfalls beeinflusst, da Datenpipelines zunehmend in Analyse- und Modelltrainingssysteme einspeisen.
Herausforderungen und bewährte Praktiken
Das Entwerfen eines effektiven ETL-Systems erfordert sorgfältige Planung. Zu den wichtigsten Herausforderungen gehören die Bewältigung von Datenqualitätsproblemen, die Verwaltung von Schemaänderungen und die Sicherstellung der Leistung bei Skalierung. Bewährte Praktiken umfassen:
- Definieren klarer Datenvalidierungsregeln und Ausnahmebehandlung.
- Dokumentieren der Transformationslogik für die Wartbarkeit.
- Verwenden inkrementeller Ladungen zur Reduzierung der Verarbeitungszeit.
- Überwachen von ETL-Jobs auf Fehler und Leistungsengpässe.
- Sicherstellen von Datensicherheit und Compliance während Extraktion und Laden.
ETL bleibt eine kritische Komponente von Datenintegrationsstrategien und überbrückt die Lücke zwischen operativen Systemen und analytischen Umgebungen. Da Datenmengen wachsen und Quellen vielfältiger werden, entwickeln sich ETL-Prozesse weiter und integrieren Streaming- und cloudnative Technologien, um moderne Anforderungen zu erfüllen.