Uncategorized

Was ist ETL?

ETL-Pipeline Streaming

ETL ist die Abkürzung für Extrahieren, Transformieren und Laden. Dateningenieure und Datenexperten verwenden den Begriff üblicherweise, um den mehrstufigen Prozess zu beschreiben, mit dem Rohdaten in eine Form gebracht werden, die zur Durchführung wertvoller Data Analytics verwendet werden kann, die eine verbesserte Entscheidungsfindung unterstützen.

ETL-Bedeutung

Die Bedeutung von ETL lässt sich am besten beschreiben, indem man jeden einzelnen Buchstaben nimmt und seine Rolle im ETL-Prozess erörtert.

Der Extraktionsschritt

In der ersten Phase des ETL-Prozesses werden operative Rohdaten aus vielen Quellsystemen extrahiert. Wenn der Datensatz , den Sie laden, nicht öfter als einmal pro Tag aktualisiert werden muss und nicht zu groß ist, können Sie eine tägliche Kopie extrahieren und die Tabelle in Ihrer Zieldatenbank überschreiben. Relationale Datenbanken bieten eine SQL-Funktion namens TRUNCATE TABLE, die die Hochwassermarke auf Null setzt, was zur Folge hat, dass die Tabelle sofort geleert wird. Dies ist effizienter als ein SQL-DELETE-Vorgang, der jede Zeile verarbeiten muss und eine Menge CPU verbraucht. Dieser Ansatz wird als vollständige Extraktion bezeichnet.

Wenn die Quelldaten bereinigt oder transformiert werden müssen oder sehr umfangreich sind, ist es besser, nur die jüngsten Daten zu extrahieren, zu bereinigen und zu laden. Dieser Ansatz wird als partielle Extraktion bezeichnet.

Die anspruchsvollste Extraktion ist die partielle Extraktion mit Aktualisierungsbenachrichtigung. Dieser Ansatz wird verwendet, wenn Ihre Zieldatenbank nahezu in Echtzeit über Änderungen an den Quelldaten informiert werden muss. Handelt es sich beispielsweise um ein Aktienhandelssystem, kann das Quellsystem Änderungen an mehrere abonnierende Zielsysteme weiterleiten. Angenommen, die Quellanwendung ist ein Mobiltelefonnetz, das Tausende von Anruftransaktionen pro Sekunde verfolgt. In diesem Fall kann die Extraktion in Mikrobatches durchgeführt werden, die etwa alle 5 Sekunden nach Änderungen im Quellsystem suchen und diese Änderungen nahezu in Echtzeit auf das Zielsystem übertragen.

Viele Datenbanksysteme unterstützen Trigger, die ausgelöst werden, wenn ein Ereignis wie ein Einfüge-, Lösch- oder Aktualisierungsvorgang stattgefunden hat. Diese Auslöser können so programmiert werden, dass sie ein Änderungsprotokoll aktualisieren, aus dem nachgelagerte Systeme Daten extrahieren können. Die Verwendung eines Messaging-Systems wie Amazon SNS ermöglicht es Ihnen, Benachrichtigungen direkt an Ihre Zielsysteme zu senden, um sie über Aktualisierungen im Quellsystem zu informieren. Diese Art der asynchronen Beziehung zwischen Quell- und Zieldatensystemen stellt sicher, dass die operativen Quellsysteme nie aufgehalten werden, weil ein Zielsystem die Aktualisierung aus irgendeinem Grund nicht aufnehmen kann.

Die Beziehungen zwischen Quell- und Zielsystemen können eine einfache Punkt-zu-Punkt-Verbindung sein, die einfach einzurichten und zu verwalten ist. Im Laufe der Zeit erstellen Unternehmen Hunderte solcher Eins-zu-Eins-Verbindungen, deren Pflege und Verwaltung zu aufwendig wird. An diesem Punkt kann ein Vended ETL-Tool die Verwaltung aller Verbindungen konsolidieren und ist damit eine gute Investition. Ein sehr wichtiger Aspekt der Extraktion ist die Erinnerung an die Datenquelle, so dass die Systeme diese katalogisieren können, um die Herkunft der Daten zu verfolgen und zu überprüfen. Bei der Datenherkunft (auch als "Data Lineage" bezeichnet) handelt es sich um Metadaten , die mit Datensätzen gepaart sind, die den Ursprung, die Änderungen und die Details zur Herkunft der Datenquellen detailliert beschreiben. Die Rückverfolgung der Quellen auf diese Weise hilft bei der Kontrolle der Duplizierung und gibt Aufschluss darüber, ob die Daten vertrauenswürdig oder verlässlich sind.

Die Extraktion von Daten kann so einfach sein wie der Import einer CSV-Version einer Kalkulationstabelle oder so komplex wie die Verwendung einer Webdienst-API. Die meisten Geschäftsanwendungen bieten APIs, die eine Extraktion mit einer Anwendung oder einem ETL-Tool ermöglichen. Das Format der Quelldaten gibt oft vor, wie sie extrahiert werden können. Ein JSON-Stream zum Beispiel erfordert die Verwendung einer Webdienst-API. Eine flache Datei kann sequenziell gelesen werden. Eine Datenbankquelle verfügt in der Regel über ein Exportdienstprogramm zum Entladen von Daten in eine flache Datei. In einem Mainframe-System kann beispielsweise ein Datensatz , auf den üblicherweise über die Taste

Der Transformationsschritt

Rohdaten aus einer operativen Quelle müssen in der Regel manipuliert und bereinigt werden, um sie für den allgemeinen Gebrauch geeignet zu machen. Die Datenumwandlung findet häufig in einer Zwischen- oder Staging-Datenbank statt. Rohe Quelldaten können überschüssige Daten enthalten, die herausgefiltert werden müssen. Sie können Lücken aufweisen, die mit Standardwerten oder interpolierten Daten gefüllt werden können. Doppelte Daten können je nach Verwendungszweck in der Zieldatenbank aggregiert oder entfernt werden. Wenn verwandte Daten aus mehreren Quellen extrahiert werden, können sie zusammengeführt werden, um eine einzige Aufzeichnung zu erstellen. Die Datenwerte können normalisiert werden. Zum Beispiel können verschiedene Quellen von Kundendaten diese unterschiedlich Aufzeichnung . Ein System schreibt den Staat vielleicht wie "New York", während andere eine Abkürzung wie "NY" verwenden. Die Standardisierung der Abkürzung kann während der Datentransformation erfolgen. Die Umwandlung kann Datenqualitätsoperationen beinhalten, wie z. B. die Überprüfung von Werten über mehrere Quellen hinweg, bevor sie als vertrauenswürdiger Wert weitergegeben werden.

Konzeptuelle Darstellung einer Cloud , die den ETL-Prozess repräsentiert

Der Ladeschritt

Das Laden der Daten in das Zielsystem ist der letzte Schritt des ETL-Prozesses. Das Laden der Daten kann mit einem Massenladeprogramm, Streaming, asynchronem Messaging oder einem benutzerdefinierten Programm erfolgen. Vorhandene Daten können vollständig überschrieben, ergänzt oder teilweise mit neuen Werten aktualisiert werden. Die Aktualisierungshäufigkeit kann in Batches, z. B. über Nacht, in regelmäßigen Abständen in Mikro-Batches oder kontinuierlich in einem Datenstrom erfolgen.

ETL-Geschichte

In den 1970er Jahren wurden Datenbanken mit benutzerdefiniertem Code geladen oder von Dateneingabebeamten eingegeben. Die Datenmengen waren nach heutigen Maßstäben gering, und die Fehlerquote konnte aufgrund menschlicher Fehler hoch sein. Datenbanken wurden in erster Linie für den Betrieb operativer Systeme verwendet; Analysen wurden von Mitarbeitern anhand von Ausdrucken durchgeführt.

In den 1980er Jahren konnten mit Minicomputern und Personal Computern flache Dateien erstellt werden, die mit Hilfe von Batch-Ladeprogrammen in Analysesysteme geladen wurden. Das Aufkommen von Tabellenkalkulationen für die Data Analytics führte zur Standardisierung von Daten in abgegrenzten Formaten wie CSV-Dateiformaten für die gemeinsame Nutzung von Daten auf verschiedenen Computern. Die Netzwerke waren langsam, so dass die Daten oft auf Magnetbändern und Disketten transportiert wurden. Die Datenanalyse wurde mit Statistikpaketen wie X11 und Box Jenkins für multivariate Regressionsanalysen durchgeführt, und die Daten wurden mit 3GL-Code in Sprachen wie FORTRAN geschrieben.

In den 1990er Jahren kam das Data Warehouse auf, das den ETL-Prozess mit sich brachte. Entscheidungsunterstützungssysteme wurden auf Datenbanken aufgebaut, die auf verschiedenen Versionen von Unix und Linux liefen. Unternehmens- oder zentralisierte Data-Warehousing-Funktionen konnten auf lokalere Systeme mit geschäftsbereichs- oder regionalspezifischen Data Marts verteilt werden. Die Datenintegration erfolgte in der Regel Punkt-zu-Punkt.

In den 2000er Jahren wurde ETL durch Anbieter von Datenintegrationstools standardisiert, die Unternehmen bei der Skalierung der Bewegung und des Transports von Daten zwischen Systemen unterstützten und grafische Nutzer (GUI) zur Erstellung und verwalten von ETL-Prozessen anboten.

In den 2010er Jahren wurden internetbasierte Datenübertragungen und SaaS-Anwendungen sehr populär, ebenso wie die Internet-Scale-Publishing-Subscribe-Angebote auf öffentlichen Cloud . Die ETL- und Datenintegrationsmodelle wurden mit dem Aufkommen von Hub-and-Spoke-basierten Datenmodellen immer ausgefeilter.

ETL ist heute allgegenwärtig, und der Markt konsolidiert ETL- und Datenbankmanagementfunktionen in integrierten Cloud Diensten.

Wie funktioniert ETL?

Wir können eine Customer360-Anwendung als Beispiel verwenden, um zu veranschaulichen, wie ETL funktioniert. Kundenbetreuer und Vertriebsmitarbeiter nutzen die Zieldatenbank, um neuen Kunden Dienstleistungen zu verkaufen, neue Dienstleistungen an bestehende Kunden weiterzuverkaufen und bestehende Abonnements zu verlängern.

Bevor das Team den Kunden oder Interessenten anruft, muss es so viel wie möglich über ihn wissen, um zu zeigen, dass es sich für ihn interessiert, indem es Nachforschungen anstellt. Das Zielsystem muss zeigen, wie lange der Kunde schon Kunde ist, wie viel er ausgegeben hat und welche Dienstleistungen er heute und in der Vergangenheit in Anspruch genommen hat. Zufriedenheitsmessungen wie Umfrageergebnisse und offene Supportfälle sind von entscheidender Bedeutung, da es schwer ist, an unzufriedene Kunden zu verkaufen.

Die Quelldaten müssen aus Systemen wie Salesforce, ServiceNow und SAP stammen. Die Salesforce-Daten müssen durch den Export einer CSV-Datei auf der Grundlage eines kundenspezifischen Berichts extrahiert werden. ServiceNow bietet eine REST-API, die von einem ETL-Tool über ein Befehlsskript abgefragt werden kann. SAP kann eine CSV-Datei erstellen, die in das Lager eines BI-Tools importiert werden kann, bei dem es sich häufig um eine eingebettet Edition von SQL Server handelt. Alle durch den ETL-Prozess extrahierten Datenquellen können verwendet werden, um ein Customer 360 dashboard für die Vertriebs- oder Account-Management-Teams zu erstellen.

Warum ist ETL wichtig?

Die Zahl der Unternehmensdatenquellen und Datentypen nimmt jährlich zu - und damit auch die Zahl der erforderlichen Verbindungen zu diesen Systemen. Die Kosten für die Verwaltung und Pflege einzelner Punkt-zu-Punkt-Verbindungen werden schnell unerschwinglich. Ein Tool, mit dem Sie Plug-and-Play-Verbindungen zu beliebigen Datenquellen herstellen und Datenumwandlungen sowie Ladevorgänge verwalten können, ist daher unerlässlich. Sobald eine Integration läuft, ist es wichtig, dass sie Datenflüsse mit guter Transparenz planen kann. Ohne einen formalen ETL-Prozess würde ein Unternehmen seine gesamte verfügbare Zeit und sein Budget darauf verwenden, Verbindungen am Laufen zu halten, anstatt neue Projekte zu starten, die den Umsatz des Unternehmens steigern.

Mann im Anzug zeichnet ein Balkendiagramm, um zu veranschaulichen, was ETL ist und warum es wichtig ist

Was ist der Unterschied zwischen ETL und ELT?

Das Konzept des Extrahierens, Ladens und Transformierens (Extract, Load, Transform, ELT) ist in jüngerer Zeit entstanden als das traditionelle ETL. Sie unterscheiden sich im Wesentlichen in zwei Punkten:

  • ETL lädt transformierte oder bereinigte Daten in das Ziel-Data-Warehouse. ELT hingegen transformiert Rohdaten im Data Warehouse.
  • ETL verwendet einen Zwischenspeicher und einen Server zur Datenumwandlung. ELT führt Datentransformationen innerhalb des Zieldatenlagers durch.

ETL kann als schwerfälliger angesehen werden, da es mehr Server und Datenspeicher verwendet. Dies lässt ELT als eine schlankere Datenpipeline erscheinen. Das Laden und Entladen von Daten kann langsam sein, so dass die Durchführung der Transformation auf demselben Server schneller sein kann.

Wenn im Zieldatenlager wichtige personenbezogene Daten bereinigt werden müssen, ist die Durchführung der Filterung in einem Staging-System für ETL interessant.

Wie ETL eingesetzt wird

Der ETL-Prozess kann auf verschiedenen Ebenen der Komplexität verwaltet werden:

  • Die Basisstufe besteht darin, einfach eine Punkt-zu-Punkt-Verbindung zwischen jedem Quell- und Zielsystem herzustellen. Dieser Ansatz lässt sich nicht gut skalieren, ist umständlich in der Wartung und unflexibel.
  • Die Zentralisierung der ETL-Verwaltung ist skalierbar , da sie eine zentrale Anlaufstelle bietet und Best Practices für die Erstellung neuer Integrationen verwendet.
  • Der fortschrittliche Ansatz besteht darin, eine angebotene Datenintegrationslösung zu verwenden, die das Konzept eines Integrationsbusses oder -hubs hat, der Metadaten über Datenquellen verwaltet, um mit den sich ändernden Anforderungen des Unternehmens Schritt zu halten und zu skalieren.

Was ist eine ETL-Pipeline?

Eine ETL-Pipeline umfasst die Kette von Prozessen, mit denen Daten aus Rohdatenquellen in das Zieldatenlager übertragen werden. Eine Pipeline kann als Batch-, Micro-Batch- oder Echtzeit-Stream ausgeführt werden; sie ändert sich, wenn sie im Quellsystem auftritt.

ETL-Herausforderungen

ETL steht vor vielen Herausforderungen, wobei die Komplexität die wichtigste ist. Viele ETL-Flows enthalten mehrere Schritte, die schwer zu testen und zu warten sind, da sie noch komplexere Systeme unterstützen. Ein Unternehmen kann Hunderte von ETL-Flows haben, die überwacht, verwaltet und gewartet werden müssen. IT-Systeme sind nicht statisch. Sie benötigen fortlaufend Software-Patches für den Technologie-Stack, der Anwendungen unterstützt, die schnell veraltet sind und aktualisiert oder migriert werden müssen, um die Stabilität zu gewährleisten. Da sich ETL über mehrere Systeme erstreckt, wird die Komplexität noch erhöht.

Das Volumen und die Vielfalt der Datenquellen, die ein Unternehmen miteinander verbindet, nehmen zu. Die Quellen können strukturierte, halbstrukturierte Daten, Echtzeitquellen, flache Dateien, CSVs, S3-Buckets und Streaming enthalten. Das Internet der DingeIoT), Protokolle von Website-Besuchen, Stimmungen social media und Videos schaffen neue Inhaltsklassen, die nach Erkenntnissen durchsucht werden können.

Data-Warehouses sammeln Quelldaten aus Produktionssystemen, die hochverfügbar sein müssen, und bieten daher einige Wartungsfenster für Systemtests.

ETL-Ströme können mehrere Geschäftssilos durchlaufen, was es schwierig macht, den korrekten Fluss von Geschäftsinformationen zwischen den Geschäftsbereichen zu verstehen. Komplexe ETL-Prozesse können unzuverlässig werden oder sogar Daten verlieren. Daten können stecken bleiben, weil ein Datenformat oder ein Wert Ausnahmesätze in Fehlerprotokolle fließen lässt. Alle diese Protokolle müssen überwacht werden, da sie zu unerwarteten Ergebnissen im Zieldatawarehouse führen können.

Die Verbindung unterschiedlicher Systeme, die als Monolithen konzipiert wurden, kann zu Nebeneffekten in nachgelagerten Daten führen, wenn Änderungen an einzelnen Systemen vorgenommen werden.

Actian ETL-Werkzeuge

Es gibt eine große Vielfalt an ETL-Tools. Einige wurden entwickelt, um sich ausschließlich auf die Lösung von ETL-Herausforderungen zu konzentrieren - viele Tools wie Actian DataConnect richten sich an einen breiteren Datenintegrationsmarkt.

Der DataFlow von Actian ist so konzipiert, dass er als parallele Streams arbeitet, was den Durchsatz von ETL-Operationen wie Datenfiltern und -transformationen erheblich verbessert. Der DataFlow Expression Builder hilft Ihnen, Ausdrücke für Derive Fields, Filter Rows, Data Quality Analyzer, Filter Existing Rows und Join Nodes zu erstellen. Dieses Dialogfeld enthält eine Liste der verfügbaren Felder, Operatoren und Funktionen, die Sie zum Erstellen von Ausdrücken verwenden können.

In seltenen Fällen sind die Datenbanken so konzipiert, dass sie die Datenportabilität unterstützen. So ist beispielsweise das Dateiformat der Actian Zen-Datenbank unter Unix und Windows identisch, was die Extraktion etwas vereinfacht, vor allem wenn es um Hunderte von IoT geht.

Actian DataConnect ist ein Beispiel für eine umfassende ETL-Lösung. Actian DataConnect kann verwendet werden, um Integrationen zu entwerfen und zu verwalten , die in der Cloud, vor Ort oder in hybriden Umgebungen bereitgestellt werden. DataConnect unterstützt eine breite Palette von Datentypen und skaliert auf große Datenmengen. Über eine Nutzer können Benutzer Integrationsmaps, Artefakte, Regeln und Jobpläne visuell erstellen oder ändern, ohne Kodierung oder Skripting. Der Schwerpunkt liegt auf Wiederverwendung und Anpassungsfähigkeit, so dass Unternehmen verschiedene Daten und Anwendungen kosteneffizient integrieren können.

Actian X hilft Unternehmen bei der ETL, indem es den Aufwand für die Entwicklung von kundenspezifischem Code zum kennenlernen einzelnen Geschäftsanforderung vermeidet. Wenn die Integrationsanforderungen wachsen, häufen sich die Probleme mit benutzerdefiniertem Code: Unmöglichkeit der Wiederverwendung, Schwierigkeiten bei der Wartung aufgrund schlechter oder fehlender Dokumentation und der Tatsache, dass der ursprüngliche Entwickler nicht mehr verfügbar ist. DataConnect für Actian X ermöglicht einen organisierten Ansatz, um bestehende Anwendungen schrittweise um Datenintegrationsfunktionen zu erweitern.

Die Actian Data Platform ist ein Data Warehouse mit eingebauten nativen Funktionen aufgebaut. Actian Data Platform verfügt über direkte Lader, um Massendaten aus beliebten Datenquellen wie S3, ADLS und Hadoop einzuziehen. Die Actian Data Platform enthält außerdem über 200 Konnektoren und Vorlagen für die einfache Beschaffung und Übertragung von Daten aus SaaS-Anwendungen über ODBC, JDBC, .Net und Python.

Bewährte Praktiken

Die folgenden Ratschläge stammen aus der Actian DataConnect-Dokumentation zu Best Practices für die Datenintegration, die auch für die ETL-Untergruppe gelten:

Architektur der Lösung - Wenn Sie ein neues Integrationsprojekt beginnen, sollten Sie zunächst die geschäftlichen Probleme identifizieren, für die Sie Lösungen anbieten müssen. In Übereinstimmung mit der agilen Methodik erstellen Sie das Anforderungsdokument, nehmen sich aber nur so viel Zeit, dass das Team die Ziele und die erforderlichen Ergebnisse versteht. Achten Sie darauf, dieses Anforderungsdokument im Laufe des Projekts zu aktualisieren.

Design for Reuse - Es gibt mehrere Möglichkeiten, organisierte und leicht verständliche Integrationen zu erstellen. Es schafft mehr Klarheit unter den Teammitgliedern, indem es vertraute und erkennbare Muster bereitstellt, wenn der Projektumfang oder die Anzahl der Projekte zunimmt. Richten Sie in der Entwurfsphase kollaborative Arbeitsbereiche ein, verwenden Sie Namenskonventionen, ordnen Sie Geschäftsprozesse den Datenflüssen zu, erstellen Sie Vorlagen und verwenden Sie Verbindungen über ETL-Datenpipelines hinweg wieder.

Die Erstellung von Vorlagen ist ebenfalls von Vorteil, da sie eine visuelle Dokumentation der ETL-Schritte ermöglicht.

Zu den allgemeinen Techniken, die in Betracht gezogen werden sollten, gehören die Wiederverwendbarkeit von Skripten durch Parameterübergabe, die Verwendung von Konstanten, die Nutzung von Parallelität, wo dies möglich ist, und die Validierung von Daten. Außerdem sollten Sie Zeitzonen und Lokalisierung berücksichtigen.

Es ist wichtig, ETL-Prozesse während der Entwicklung anhand von Beispieldaten zu testen und, was noch wichtiger ist, einen Systemtest parallel zum bestehenden System durchzuführen, bis Sie sicher sind, dass Sie auf den neuen Prozess umstellen können.

Verwenden Sie während der Produktion einen Protokollmanager zur Überwachung von Ausnahmen, damit Sie unbeabsichtigte Nebenwirkungen von Systemänderungen an Ihrer ETL-Pipeline auffangen können.

Besuchen Sie die ActianWebsite, um mehr über unsere kompletten Datenprodukte und Lösungen zu erfahren.