Extract Transform Load (ETL)
Was ist ETL?
Da die Menge an Daten, Datenquellen und Datentypen in Unternehmen wächst, wird es immer wichtiger, diese Daten in Analytics-, Data-Science- und Machine-Learning-Initiativen zu nutzen, um geschäftliche Erkenntnisse abzuleiten. Die Notwendigkeit, diese Initiativen zu priorisieren, erhöht den Druck auf die Data-Engineering-Teams, da die Verarbeitung der rohen, unübersichtlichen Daten in saubere, frische und zuverlässige Daten ein entscheidender Schritt ist, bevor diese Initiativen weiterverfolgt werden können. ETL, was für Extract Transform Load steht, ist der Prozess, den Data Engineers verwenden, um Daten aus verschiedenen Quellen zu extrahieren, die Daten in nutzbare und vertrauenswürdige Ressourcen umzuwandeln und diese Daten in die Systeme zu laden, auf die Endbenutzer zugreifen und sie nachgelagert verwenden können, um geschäftliche Probleme zu lösen.
Wie funktioniert ETL?
Extrahieren
Der erste Schritt dieses Prozesses besteht darin, Daten aus den Zielquellen zu extrahieren, die normalerweise heterogen sind, z. B. Geschäftssysteme, APIs, Sensordaten, Marketingtools und Transaktionsdatenbanken sowie andere. Wie Sie sehen, handelt es sich bei einigen dieser Datentypen wahrscheinlich um strukturierte Ausgaben weit verbreiteter Systeme, während es sich bei anderen um halbstrukturierte JSON-Serverprotokolle handelt. Es gibt verschiedene Möglichkeiten, die Extraktion durchzuführen. Drei Datenextraktionsmethoden:
- Teilweise Extraktion: Der einfachste Weg, die Daten zu erhalten, besteht darin, dass das Quellsystem Sie benachrichtigt, wenn ein Datensatz geändert wurde.
- Teilweise Extraktion (mit Update-Benachrichtigung): Nicht alle Systeme können bei einem Update benachrichtigen. Sie können jedoch auf die geänderten Datensätze verweisen und ein Extrakt dieser Datensätze bereitstellen.
- Vollständige Extraktion: Es gibt bestimmte Systeme, die überhaupt nicht erkennen können, welche Daten geändert wurden. In diesem Fall ist eine vollständige Extraktion die einzige Möglichkeit, die Daten aus dem System zu extrahieren. Für diese Methode ist eine Kopie des letzten Extrakts im gleichen Format erforderlich, damit Sie die vorgenommenen Änderungen identifizieren können.
Transformieren
Der zweite Schritt besteht darin, die aus den Quellen extrahierten Rohdaten in ein Format zu transformieren, das von verschiedenen Anwendungen verwendet werden kann. In dieser Phase werden die Daten bereinigt, zugeordnet und transformiert, häufig in ein bestimmtes Schema, damit sie den betrieblichen Anforderungen entsprechen. Dieser Prozess umfasst mehrere Arten der Transformation, die die Qualität und Integrität der Daten sicherstellen. Daten werden normalerweise nicht direkt in die Zieldatenquelle geladen, sondern üblicherweise in eine Staging-Datenbank hochgeladen. Dieser Schritt gewährleistet ein schnelles Rollback für den Fall, dass etwas nicht wie geplant verläuft. In dieser Phase haben Sie die Möglichkeit, Prüfberichte zur Compliance mit gesetzlichen Vorschriften zu erstellen oder Datenprobleme zu diagnostizieren und zu beheben.
Laden
Bei der Ladefunktion handelt es sich um den Prozess des Schreibens konvertierter Daten aus einem Staging-Bereich in eine Zieldatenbank, unabhängig davon, ob diese zuvor vorhanden war oder nicht. Abhängig von den Anforderungen der Anwendung kann dieser Prozess entweder recht einfach oder kompliziert sein. Jeder dieser Schritte kann mit ETL-Tools oder benutzerdefiniertem Code durchgeführt werden.
Was ist eine ETL-Pipeline?
Eine ETL-Pipeline (oder Datenpipeline) bezeichnet den Mechanismus, nach dem ETL-Prozesse ablaufen. Datenpipelines sind eine Reihe von Tools und Aktivitäten zum Verschieben von Daten von einem System mit seiner Art der Datenspeicherung und -verarbeitung in ein anderes System, in dem sie anders gespeichert und verwaltet werden können. Darüber hinaus ermöglichen Pipelines das automatische Abrufen von Information aus vielen unterschiedlichen Quellen und deren anschließende Transformation und Konsolidierung in einem leistungsstarken Datenspeicher.
Herausforderungen bei ETL
Während ETL unerlässlich ist, ist das Erstellen und Verwalten zuverlässiger Datenpipelines angesichts dieser exponentiellen Zunahme von Datenquellen und -typen zu einem der anspruchsvolleren Teile des Data Engineering geworden. Das Erstellen von Pipelines, die Datenzuverlässigkeit gewährleistet, ist von Anfang an langsam und schwierig. Datenpipelines werden mit komplexem Code und eingeschränkter Wiederverwendbarkeit erstellt. Eine in eine Umgebung integrierte Pipeline kann nicht in einer anderen verwendet werden, selbst wenn der zugrunde liegende Code sehr ähnlich ist, was bedeutet, dass Data Engineers oft der Engpass sind und das Rad jedes Mal neu erfinden müssen. Über die Pipelineentwicklung hinaus ist die Verwaltung der Datenqualität in immer komplexeren Pipeline-Architekturen schwierig. Oftmals wird zugelassen, dass fehlerhafte Daten unentdeckt durch eine Pipeline fließen, wodurch das gesamte Dataset entwertet wird. Um die Qualität aufrechtzuerhalten und die Gewinnung zuverlässige Informationen sicherzustellen, müssen Data Engineers umfangreichen benutzerdefinierten Code schreiben, um Qualitätsprüfungen und Validierungen in jedem Schritt der Pipeline durchzuführen. Mit zunehmender Größe und Komplexität der Pipelines steigt auch die operative Belastung der Unternehmen bei der Verwaltung der Pipelines, was die Aufrechterhaltung der Datenzuverlässigkeit unglaublich schwierig macht. Die Datenverarbeitungsinfrastruktur muss eingerichtet, skaliert, neu gestartet, gepatcht und aktualisiert werden – was zu erhöhtem Zeit- und Kostenaufwand führt. Pipelineausfälle sind schwer zu erkennen und noch schwieriger zu beheben – aufgrund mangelnder Transparenz und fehlender Tools. Unabhängig von all diesen Herausforderungen ist zuverlässiges ETL ein absolut entscheidender Prozess für jedes Unternehmen, das Erkenntnisse gewinnen möchte. Ohne ETL-Tools, die einen Standard an Datenzuverlässigkeit aufrechterhalten, müssen Teams im gesamten Unternehmen blind Entscheidungen ohne verlässliche Metriken oder Berichte treffen. Um weiter zu skalieren, benötigen Data Engineers Tools zur Rationalisierung und Demokratisierung von ETL, die den ETL-Lebenszyklus vereinfachen und es Datenteams ermöglichen, ihre eigenen Datenpipelines zu erstellen und zu nutzen, um schneller zu Erkenntnissen zu gelangen.
Automatisieren zuverlässiger ETL-Vorgänge in Delta Lake
Delta Live Tables (DLT) reduziert den Entwicklungs- und Verwaltungsaufwand zuverlässiger Datenpipelines, die hochwertige Daten in Delta Lake bereitstellen. DLT unterstützt Data-Engineering-Teams bei der Vereinfachung der ETL-Entwicklung und -Verwaltung mit deklarativer Pipelineentwicklung, automatischen Datentests und umfassenden Einblicken in Monitoring und Wiederherstellung.