kentoh - Fotolia
Mit automatisierter Datenintegration zum Modern Data Stack
Das Zusammenspiel von Technologien, die eine automatisierte Datenintegration ermöglichen, wird als Modern Data Stack bezeichnet. Doch wie ist dieser aufgebaut?
Die automatisierte Datenintegration ist untrennbar mit dem Wachstum des Cloud Computing verbunden. Moderne Hardware, größere Speicherkapazität, höhere Verarbeitungsgeschwindigkeit und mehr Internetbandbreite lassen die Kosten sinken. Das Speichern und Verarbeiten großer Datenmengen war noch nie so günstig wie heute.
Der erschwingliche und effiziente Zugang zu Rechenleistung über das Internet hat eine Flut an Cloud-Diensten, insbesondere Software-as-a-Service-Anwendungen (SaaS) hervorgerufen. Im Zuge dessen sind die Vielfalt, das Volumen und die Komplexität der Daten durch die Decke geschossen. Daten werden meist über die Programmierschnittstelle (API) der SaaS-Anbieter bereitgestellt. Da sämtliche Nutzer eines bestimmten SaaS-Produkts Zugriff auf dieselbe API haben, ergeben sich für Drittanbieter Möglichkeiten, Skalierungseffekte zu nutzen und automatisierte Datenintegrationslösungen anzubieten.
Ein herkömmliches Unternehmen, egal welcher Größe, nutzt heutzutage Dutzende von Anwendungen. Die Daten, die dabei produzieren werden, ermöglichen wertvolle Einblicke in die Geschäftsabläufe und zeigen dabei Optimierungspotential auf.
Der Siegeszug der Cloud-Anwendungen mit hohem Volumen an Daten und der daraus resultierende Komplexität bringt nicht nur eine große Herausforderung mit sich, sondern auch eine große Chance für Cloud-Datenintegrations-Tools.
Der Modern Data Stack
Das Zusammenspiel der Vielzahl an Tools und Technologien, die eine automatisierte Datenintegration ermöglichen, wird als Modern Data Stack bezeichnet. Zu den Kernkomponenten des modernen Data Stack gehören:
- Datenquellen – Die Daten stammen aus SaaS-Anwendungen, Betriebssystemen, Transaktionsdatenbanken, Event-Trackern und Dateien in zahlreichen Formaten.
- Automatische Data Pipeline – Automatische Data Pipelines werden eingesetzt, um Daten aus Quellen in Data Warehouses und Data Lakes zu übertragen. Die korrekte Implementierung ist keine einfache Aufgabe, wobei hier die technischen Einzelheiten des Extrahierens und Ladens von Daten im Fokus stehen.
- Data Warehouse oder Data Lake – Um Verbindungen zwischen Daten aus unterschiedlichen Quellen herzustellen, benötigen Unternehmen eine Plattform, die eine sichere, dauerhafte Speicherung der Daten ermöglicht und gleichzeitig für Analysten und Data Scientist leicht zugänglich ist. Diese Plattform kann relational und für strukturierte Daten ausgelegt sein (Data Warehouse) oder nicht-relational und sowohl strukturierte als auch unstrukturierte Daten enthalten (Data Lake).
- Transformationen – Daten an der Quelle liegen meist nicht in einem Format vor, um sie direkt für Berichte und Dashboards zu nutzen. Das Durchführen von Transformationen erlaubt es Analysten, Daten beliebig zu modellieren.
- Business-Intelligence- oder Data-Science-Plattform – Daten werden gesammelt, um Erkenntnisse zu gewinnen, die Unternehmen bei Entscheidungen zu unterstützen. Progressive Unternehmen können mit Daten künstliche Intelligenz für die automatisierte Entscheidungsfindung in operativen Systemen einsetzen.
Überlegungen zum Aufbau
Eine automatisierte Data Pipeline extrahiert Daten aus einer bestimmten Quelle und lädt sie dann in ein Data Warehouse oder Data Lake. Diese scheinbar simple Aufgabe beinhaltet jedoch eine Reihe von Überlegungen:
ELT versus ETL
Die Abfolge der Schritte der Daten von der Quelle zum Data Warehouse bis hin zur Business-Intelligence-Plattform, die beim Modern Data Stack genutzt wird, ist Extract, Load, Transform (ELT). Im Vergleich zum traditionellen ETL-Ansatz (Extract, Transform, Load) verschiebt sich beim Modern Data Stack der Schritt Transform ans Ende des Prozesses.
Der oftmals noch praktizierte ETL-Ansatz ist fehleranfällig, sobald sich die Schemata im Upstream oder die angestrebten Datenmodelle im Downstream verändern. ETL ist außerdem darauf ausgerichtet, die Rechenleistung möglichst gering zu halten.
Da die Kosten für Rechenleistung, Speicherkapazität und Bandbreite im Zeitalter der Cloud deutlich gesunken sind, gilt dieser Ansatz inzwischen als überholt. Weil ELT die Daten mehr oder weniger direkt von der Quelle an den Zielort zieht, ist ein vollautomatisierter, konfigurationsfreier Aufbau von Data Pipelines überhaupt erst möglich.
Inkrementelle Updates
Auch wenn Rechenleistung, Speicherkapazität und Bandbreite so kostengünstig wie nie zuvor sind, ist es effizienter, nur Datensätze zu extrahieren und zu laden, die seit der letzten Aktualisierung geändert wurden, anstatt stets alle Datensätze erneut zu laden.
Der Ansatz für inkrementelle Aktualisierungen unterscheidet sich von der überholten Praxis, in regelmäßigen Abständen Schnappschüsse des gesamten Datensatzes zu erstellen. Mit Unterstützung inkrementeller Updates kann ein System häufiger und detaillierter zu wesentlich geringeren Kosten aktualisiert werden. Dafür gibt es mehrere Strategien, zum Beispiel das Auslesen von Änderungsprotokollen und die Verwendung von Change Data Capture (CDC).
Idempotenz
Manchmal schlägt die Synchronisierung von Daten fehl und muss wiederholt werden. Eine idempotente Data Pipeline ist praktisch selbstkorrigierend. So führt ein Vorgang, der mehrfach ausgeführt wird, immer zu demselben Ergebnis. Im Kontext der Datenintegration ermöglicht die Idempotenz die Wiederholung von Synchronisierungen und verhindert gleichzeitig die Duplizierungen fehlgeschlagener Datensynchronisierungen.
Normalisierte Schemata
Das Ableiten normalisierter Schemata aus einem Datensatz erfordert ein genaues Verständnis der zugrunde liegenden Datenmodelle und Verhaltensweisen einer Anwendung. Durch das Normalisieren eines Datensatzes beim Laden wird wiederum verhindert, dass doppelte, redundante und abgeleitete Werte den Zielort unübersichtlich machen.
Migration von Schemata
Schemata können sich durch Hinzufügen, Löschen und Umbenennen von Spalten und Tabellen an der Quelle ändern oder auch, wenn sich der Datentyp einer Spalte ändert. Die Fähigkeit, Schemata-Änderungen automatisch zu erkennen und zu berücksichtigen, ermöglicht ein unterbrechungsfreies Datenintegrationssystem und verhindert Ausfallzeiten.
Herkömmliche Data Pipelines enthalten fest codierte Spalten- und Tabellennamen und Spaltendatentypen. Diese fest codierten Verweise können ungültig werden, sobald sich Namen oder Datentypen in der Quelle ändern. Das führt zu fehlgeschlagenen Synchronisierungen und defekten Data Pipelines. Mit dem traditionellen ETL-Ansatz wird dieses Problem durch die noch größere Anzahl fest codierter Verweise zusätzlich verschärft.
Ein System, das Änderungen von Schemata automatisch berücksichtigt, stellt dagegen sicher, dass mögliche Brüche sich auf die Transformationsschicht beschränken. Ein solches System ist weniger fehleranfällig, da die Daten in jedem Fall weiterhin extrahiert und geladen werden.
Net-Additive Datenintegration
Daten aus der Vergangenheit können sehr wertvoll sein. Um über ein echtes Daten-Repository mit allen Daten zu verfügen, sollte eine Data-Pipeline einen netzadditiven Ansatz für die Datenintegration bieten. Insbesondere die Fähigkeit, auf vorherige Versionen von Zeilen, Spalten und Tabellen zurückzugreifen.
„Die Implementierung eines Modern Data Stacks ist der beste Weg, um erfolgreich Analytics zu betreiben, wenn die Anzahl der Datenquellen zunimmt und das Datenvolumen explodiert.“
Alexander Zipp, Fivetran
Die Möglichkeit, vergangene Werte in Zeilen erneut zu überprüfen, erfolgt mit dem Konzept der sogenannten Historientabellen. In Bezug auf Spalten und Tabellen überschneidet sich die netzadditive Datenintegration erheblich mit der automatischen Schematamigration.
Insbesondere das Konzept der verlustfreien Replikation bedeutet, dass Spalten und Tabellen, die in der Quelle gelöscht wurden, trotzdem am Zielort erhalten bleiben. Die netzadditive Datenintegration ist unerlässlich, um den Verlust wertvoller Informationen zu verhindern.
Datentyperkennung und Datentypzwang
Es ist nicht immer offensichtlich, welcher Datentyp auf ein Feld aus einem Raw Data Feed angewendet werden soll. Dies kann durch die unterschiedlichen Datentypen, die von den verschiedenen Datenbanken unterstützt werden, noch erschwert werden. Es ist wichtig, dass eine Data Pipeline über eine Hierarchie von Datentypen verfügt, um automatisch geeignete Datentypen zu erzwingen oder abzuleiten.
Neben Überlegungen zur Architektur, insbesondere der Data Pipelines, sind allgemeine Überlegungen zu Zuverlässigkeit, Skalierbarkeit und Sicherheit notwendig. Der Aufbau einer Datenintegrationslösung ist komplex und erfordert Vorausschau und ein gezieltes Vorgehen.
Die Implementierung eines Modern Data Stacks – Datenintegrationslösung, Cloud Data Warehouse und Business Intelligence-Plattform – ist der beste Weg, um erfolgreich Analytics zu betreiben, wenn die Anzahl der Datenquellen zunimmt und das Datenvolumen explodiert. Die kontinuierliche Datenintegration macht den Zugriff auf die Daten so zuverlässig und selbstverständlich, wie Strom aus der Steckdose und bietet Analysten ein hohes Maß an Flexibilität.
Über den Autor:
Alexander Zipp ist Commercial Lead bei Fivetran.
Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.