Entwicklung eines Cloud DWH

2022-07-06 | Article | Insights

Mit dem dramatischen Anstieg der in jedem Unternehmen erzeugten Datenmengen sind Data Warehouses (DWH) zu einem brandaktuellen Thema geworden. Heutzutage werden Daten in einem so hohen Tempo und aus so vielen verschiedenen Quellen generiert, dass herkömmliche Datenbanken damit nicht mehr mithalten können. Aus diesem Grund ist das DWH entstanden, das dieses Problem lösen soll. Ein Data Warehouse ist eine dezentralisierte Integration verschiedener Datenquellen zum Zwecke der Berichterstattung und Datenanalyse.

Die Nutzung von Data Warehouses hat aufgrund einiger ihrer großen Vorteile zugenommen:

  • Es handelt sich um einen vollständig verwalteten Dienst, der es Unternehmen ermöglicht, sich nur auf die Daten zu konzentrieren.
    • Es muss keine Hardware-Wartung mehr durchgeführt werden.
  • Ein Data Warehouse kann entsprechend dem Wachstum des Unternehmens herauf und herunter skaliert werden.
    • Dadurch ist es kosteneffizient, da nur für das gezahlt werden muss, was tatsächlich genutzt wird.
  • Es unterstützt Daten-Streaming, welches Unternehmen Einblicke in Echtzeit gewährt.
    • Dies ermöglicht es dem Nutzer, Änderungen sofort nachzuvollziehen.
  • Es unterstützt Machine Learning Initiativen, um das Beste aus den Daten herauszuholen.
    • Die Implementierung von KI verbessert die predictive Insights.

Phasen

Im Allgemeinen besteht die Entwicklung eines Cloud Data Warehouse aus 4 verschiedenen Phasen. Jede von ihnen hat ihre eigenen Anforderungen und Herausforderungen.

1. Quellen identifizieren, mit denen gearbeitet werden soll

Der erste Schritt beim Aufbau eines Cloud Data Warehouse besteht darin, alle Quellen zu identifizieren, über die das Unternehmen verfügt und die es zu einer Single Source of Truth konsolidieren möchte (ein einziger Ort für aggregierte Daten, auf den die Informationssysteme zugreifen können). Es ist wichtig, eine vollständige Liste zu haben, um zu organisieren und zu planen, wie die Datenquellen mit dem DWH verbunden werden können. Die Art der Datenquellen kann je nach Markt variieren, lässt sich aber im Allgemeinen in die folgenden Kategorien unterteilen:

  • Daten, die sich in anderen öffentlichen Clouds befinden
  • On-Premise 1st-Party Daten (z. B. Finanzdaten, HR-Daten usw.)
  • Digitale Werbeplattformen
  • Social Media Plattformen
  • Software zur Verwaltung von Kundenbeziehungen (CRMS)
  • Webanalysetools
  • Logistik
  • E-Commerce
  • E-Mails

Nachdem die Quellen definiert wurden, müssen zwei weitere Schritte berücksichtigt werden. Erstens muss festgelegt werden, welche Metriken und/ oder Dimensionen aus jeder Quelle extrahiert werden sollen. Sobald die Daten, die man extrahieren möchte, definiert sind, muss zweitens das Schema der Rohdaten im DWH eingerichtet werden. Dazu muss bekannt sein, mit welcher Art von Variablen man arbeiten möchte und ob verschiedene Quellen miteinander interagieren.

2. Dateneingabe

Sobald die vollständige Liste der Quellen fertig ist, muss entschieden werden, wie die Daten aufgenommen werden sollen. Es können eigene Konnektoren und Data Pipelines erstellt oder Tools von Drittanbietern verwendet werden, die dies übernehmen. Wir konzentrieren uns in diesem Artikel auf die erste Option, da das Hauptziel darin besteht, ein Cloud Data Warehouse von Grund auf zu entwickeln.

Herausforderung

Der Aufbau der Data Pipelines und Konnektoren kann anfangs etwas mühsam sein. Wie wir bereits erwähnt haben, können die Datenquellen an vielen verschiedenen Orten gespeichert sein, sodass für jede von ihnen ein eigener Konnektor erstellt werden muss. Das bedeutet eine Menge Skripte für die Interaktion mit verschiedenen APIs, Datenbankverbindungen und Cloud-Service-Anbietern. Infolgedessen gibt es verschiedene Parameter zu berücksichtigen:

  • Verschiedene Arten der Authentifizierung, mit denen man umgehen muss.
    • API-Schlüssel-Authentifizierung, HTTP-Basis-Authentifizierung, OAuth-Authentifizierung, HMAC-Verschlüsselung usw.
  • Verbindungen zu verschiedenen Arten von Datenbanken.
  • Orchestrierung bei der Datenextraktion.
    • Kadenz: Die Ausgabe einer Quelle kann die Eingabe einer anderen sein.
    • Timing: die Extraktion einer Quelle muss möglicherweise einer anderen vorausgehen.
  • Interaktion mit anderen Cloud-Service-Anbietern.
  • Zu welchem Zeitpunkt und wie oft wird die Extraktion stattfinden.
  • Überwachung, dass die Skripte pünktlich und erfolgreich ausgeführt werden.
  • Ab wann soll der Datenbestand wieder aufgefüllt werden.
    • Der Zeitrahmen muss klar definiert werden.
  • Streams in Echtzeit können schwierig zu verwalten sein, da sie anfälliger für potenzielle Ausfälle sind.

Die aktive Verwaltung der Art und Weise, wie die Daten zusammengestellt werden, wird die Bewältigung der oben genannten Herausforderungen erleichtern. Es empfiehlt sich, dies mit einem Orchestrierungstool wie Airflow anzugehen. Dieses bietet die Möglichkeit, Aufgaben zu planen, zu überwachen, zu orchestrieren, Pods in einem Kubernetes-Cluster zu starten und vieles mehr.

Darüber hinaus können auch vollständig verwaltete Dienste in der Cloud bereitgestellt werden, die Kunden bei der Verwaltung ihrer Ressourcen oder Infrastruktur unterstützen. Zum Beispiel sind Cloud Composer (für Google Cloud) und Managed Workflows (für Amazon Web Services) vollständig verwaltete Dienste, die für Airflow angeboten werden. Diese Tools ermöglichen es dem Nutzer, diese Herausforderungen auf zentralisierte Weise zu bewältigen.

Die Verwendung von Echtzeitdaten ist eine Herausforderung, aber je nach Anwendungsfall kann man eine einzelne Aufnahme für komplexe Ereignisse entwickeln. Es gibt spezielle Dienste für die Verarbeitung von Echtzeitdaten. Zum Beispiel ein Echtzeit-Messaging Service wie PubSub oder Kafka oder in einigen Fällen die direkte Aufnahme von Daten in das DWH (z. B. verfügt BigQuery über die Streaming-API zum direkten Streaming von Millionen von Ereignissen pro Sekunde).

3. Datenverarbeitung

Vor der Analyse der Daten mit einer Business-Intelligence-Plattform ist eine Datenverarbeitung/ -transformation erforderlich. In dieser Phase werden die Daten transformiert und für die Analyse vorbereitet. Dabei können Daten hinzugefügt, entfernt, aggregiert oder sogar bearbeitet werden. Der Standard Arbeitsablauf für die Datenbereitstellung war viele Jahre lang ETL (Extrahieren, Transformieren und Laden). In Data Warehouses, die in der Cloud gehostet werden, kann die Pipeline jedoch in ELT (Extrahieren, Laden und Transformieren) umgewandelt werden. Die Transformation kann rein in SQL-Sprache innerhalb des DWH erfolgen. Dieser Ansatz bietet viele Vorteile:

  • Die Aufbewahrung von Rohdaten schafft ein umfangreiches historisches Archiv.
  • Die Umwandlung erfolgt nur in der Teilmenge der Rohdaten.
  • Funktioniert gut mit großen Datensätzen.
  • Unterstützt Echtzeit- und flexible Datenanalysen.
  • Geringere Kosten und Wartung.

Es gibt immer noch Fälle, in denen der ETL-Auftrag verwendet werden muss. Zum Beispiel beim Umgang mit personenbezogenen Daten, die vor der Ladephase entfernt oder verschlüsselt werden müssen. Glücklicherweise gibt es gute Cloud-basierte ETL-Tools wie Apache Beam und Apache Spark, die sowohl für eine Batch- als auch für eine Stream-Verarbeitung verwendet werden können.

Herausforderung

Wie in jeder Phase der Entwicklung eines Cloud Data Warehouse gibt es eine Reihe von Herausforderungen. Die wichtigste davon ist die Datenharmonisierung und -konsistenz. Die Datenharmonisierung bezieht sich auf die Arbeit, die erforderlich ist, um Daten aus verschiedenen Quellen so zu kombinieren, dass die Nutzer eine vergleichbare Ansicht erhalten und einen höheren Nutzen daraus ziehen können. Dies ist keine leichte Aufgabe und kann nur mit einem klaren und detaillierten Verständnis der Daten aus den verschiedenen Quellen erreicht werden. Dies wird durch mehrere Treffen mit den verschiedenen beteiligten Parteien (z. B. Interessengruppen) erreicht.

Die Datenkonsistenz bezieht sich darauf, ob die Daten in allen Quellen gleich angezeigt werden und nicht redundant sind. Bei der Aggregation von Datenquellen muss sichergestellt werden, dass weder Datenduplikate noch Datenfehler erzeugt werden. So können beispielsweise Finanzdaten in verschiedenen Währungen vorliegen, die nicht ohne eine geeignete Transformation zusammengeführt werden können. Auch können Zeitstempel in verschiedenen Bezeichnungen verwendet worden sein (z. B. Stunden gegenüber Minuten). Hier hilft erneut ein detailliertes Verständnis der Daten, um solche Fehler zu vermeiden.

4. Machine Learning Insights und Aktivierung

Zu diesem Zeitpunkt sollten die Daten konsolidiert und von Redundanzen und Fehlern bereinigt worden sein. Das heißt, die Daten wurden abgeglichen und im DWH gespeichert. Jetzt können wir die KI-Plattformen nutzen, um Machine Learning Algorithmen im DWH zu implementieren. Diese KI-Plattformen schaffen einen Mehrwert und ermöglichen es, viele Arten von Analysen je nach Anwendungsfall durchzuführen. So können beispielsweise der Lifetime Value eines bestimmten Nutzers vorhergesagt oder die Conversion Wahrscheinlichkeit eines Kunden prognostiziert werden und vieles mehr.

Ein weiterer Vorteil von DWHs ist, dass sie es ermöglichen, ein visuelles Dashboard mit aussagekräftigen Inhalten in ein viel anschaulicheres Format zu überführen. Dies kann zur Entwicklung von Wochenberichten, interaktiven Dashboards, visuellen Darstellungen für Interessengruppen und vielem mehr genutzt werden. Darüber hinaus können diese Erkenntnisse genutzt werden, um die Entscheidungsfindung zu unterstützen und die Parameter für Aktivierungsmaßnahmen festzulegen. Insbesondere ist dies für Marketingzwecke bzw. Anzeigenschaltung durch Eingrenzung von Zielgruppen hilfreich. All dies kann automatisiert werden, um den Prozess zu erleichtern.

Endergebnis

Die steigende Nachfrage nach Cloud-DWHs wird durch die geringere Komplexität im Vergleich zu On-Premise-Systemen begründet. In Verbindung mit dem Wachstum der Datenausgaberaten und der Verarbeitungsleistung von Cloud-Diensten bieten DWHs viele Vorteile. Einige davon sind Fokussierung, Skalierbarkeit und Kostensenkungen, verbesserte Geschwindigkeit und Leistung sowie eine bessere Anbindung für Machine Learning und Marketing. Allerdings gibt es natürlich immer noch Herausforderungen, die mit DWHs verbunden sind, und diese werden mit zunehmender Anzahl und Art der Quellen deutlicher. Dies führt dazu, dass mehr Skripte benötigt werden, um verschiedene Quellen in der Dateneingabephase zu integrieren, sowie zur Herausforderung der Datenharmonisierung und zu Konsistenzproblemen in der Verarbeitungsphase.

Wenn diese Probleme jedoch proaktiv angegangen und die richtigen Tools implementiert werden, kann die Wahrscheinlichkeit ihres Auftretens erheblich verringert und die Implementierung wesentlich vereinfacht werden. Erstens wird die Implementierung der richtigen Orchestrierungstools und vollständig verwalteter Dienste in das Cloud-DWH die Einrichtung aller Datenverbindungen und API-Aufrufe erleichtern. Zweitens wird die Verarbeitung sehr viel effizienter, wenn man genau weiß, welche Daten erhalten werden sollen und welche Felder erforderlich sind. Ziel ist es, dass die Algorithmen und Skripte für Machine Learning und Aktivierung die ihnen zugedachte Aufgabe effizient erfüllen können, was wiederum den Organisationen, die das DWH nutzen, hilft, ihre Ziele zu erreichen.

Haben Sie Interesse?

Kontakt