Extract-Transform-Load (ETL) beschreibt den Prozess, den Daten aus verschiedenen, oft heterogenen Datenquellen durchlaufen, um vereinheitlicht in einem zentralen Zielsystem gespeichert zu werden.
Unterschiedliche Systeme speichern Daten oft in unterschiedlichen Formaten und Strukturen. ETL holt diese Daten ab (Extraktion), bringt sie in eine einheitliche, bereinigte Form (Transformation) und übergibt sie anschließend an ein Zielsystem (Laden), sodass sie dort konsistent weiterverarbeitet werden können.
Im ersten Schritt, der Extraktion, werden Daten aus den jeweiligen Quellsystemen in einen separaten Arbeitsbereich übertragen. Im zweiten Schritt, der Transformation, werden sie gefiltert, von strukturellen und inhaltlichen Mängeln bereinigt, vereinheitlicht und bei Bedarf angereichert, etwa durch zusätzlich berechnete Kennzahlen. Erst wenn diese Aufbereitung abgeschlossen ist, werden die Daten im dritten Schritt, dem Laden, in die Zieldatenbank überführt. Eine verwandte Variante, ELT, vertauscht die letzten beiden Schritte: Rohdaten werden zunächst geladen und erst im Zielsystem transformiert.
Ein Unternehmen führt Verkaufsdaten aus mehreren Filialsystemen mit unterschiedlichen Datenformaten zusammen, vereinheitlicht Produktbezeichnungen und Währungsangaben und lädt die bereinigten Daten anschließend in ein zentrales Datenlager für die unternehmensweite Auswertung.
ETL wird eingesetzt, um Daten aus mehreren Systemen überhaupt vergleichbar und auswertbar zu machen, bevor sie in Analyse- oder Reporting-Umgebungen genutzt werden. Es bildet damit die technische Grundlage für viele Integrations- und Auswertungsvorhaben zwischen Fachanwendungen.
ETL ist kein einmaliges Projekt, sondern läuft in der Praxis meist wiederkehrend oder fortlaufend, da sich Quelldaten ständig ändern. Zudem wird ETL häufig mit dem Zielsystem selbst verwechselt: ETL ist der Übertragungs- und Aufbereitungsprozess, nicht die Datenbank, in die am Ende geladen wird.
Nicht zu verwechseln mit Data Warehouse: Dieses ist das typische Zielsystem eines ETL-Prozesses, nicht der Prozess selbst. Ebenfalls abzugrenzen ist Datenpipeline: Diese beschreibt allgemein die automatisierte Strecke von Rohdaten zu nutzbaren Beständen und kann weit mehr Verarbeitungsschritte umfassen als das klassische ETL-Muster. Auch die Application Programming Interface ist etwas anderes: Sie stellt eine Schnittstelle für den Datenaustausch bereit, übernimmt aber nicht die Bereinigung und Vereinheitlichung der Daten selbst.