23. Nov. 2021

Daten Plattform

Daten in Echtzeit versenken und wiederfinden
Principal

Autor:in

Jan Mischlich

20211123_Referenzarchitektur_Header

Wie ich meine Daten in Echtzeit versenke und sie immer wiederfinde

Daten – “das Öl des 21. Jahrhunderts” – kommen heutzutage in vielen technologisierten Bereichen eine zentrale Rolle zu: Daten ermöglichen es, Fragen zu beantworten, auf die wir zuvor keine oder keine zufriedenstellenden Antworten gefunden haben. Typische Anwendungsfälle für die Auswertung großer Datenmengen finden sich u. a. a) im Marketing von Produkten, um Kosten zu senken, b) im Bereich des Supply Chain Management, um Lieferketten zu optimieren, oder c) um in Echtzeit eine Maschinen-Anlagenüberwachung und Steuerung durchzuführen.

Damit Daten für solche Anwendungsfälle auch tatsächlich herangezogen werden können, müssen Daten strukturiert gesammelt, aufbereitet, und analysiert werden – unvollständige oder nicht verständliche Daten senken die Belastbarkeit der Schlüsse, die aus diesen Daten gezogen werden. Das strukturierte Sammeln, Aufbereiten, und Analysieren von Daten ist jedoch nicht trivial. Neben fachlichen Herausforderungen – wie: Welche Daten werden benötigt? Woher können die Daten beschafft werden? Wie müssen die Daten transformiert werden, damit sie genutzt werden können? – stellen sich technische Herausforderungen. So müssen beispielsweise a) die technischen Voraussetzungen geschaffen sein, um Daten aus mehreren (externen) Datenquellen – ggf. In Echtzeit – laden zu können, b) adäquate Speichermöglichkeiten genutzt werden, sodass die Daten auch in einem oder zwei Jahrzehnten noch effizient genutzt werden können, oder c) die Datenaufbereitung und -analyse performant ist, damit Fragen in einem zufriedenstellenden zeitlichen Rahmen auch tatsächlich beantwortet werden können. Darüber hinaus gibt es nicht leicht zu erfüllende Anforderungen, wie die der Sicherheit, die keinen direkten fachlichen oder technischen Mehrwert bieten, jedoch das Fundament der Datenspeicherung und -nutzung darstellen.

Um diese vielschichtigen fachlichen und technischen Herausforderungen lösen zu können, benötigt man eine Datenplattform, die den vollständigen Datenlebenszyklus unterstützt. Das heißt, eine Datenplattform ermöglicht

  1. das Beschaffen aus unterschiedlichsten (Dritt-)Systemen, ggf. in Echtzeit,
  2. das langjährige Speichern von Daten,
  3. das Auf- und Vorbereiten von Daten,
  4. sowie darauf aufbauend eine flexible Nutzung. Beispielsweise können die Daten für Reportings, Visualisierungen, oder Data-Science-Zwecke eingesetzt werden oder auch Drittsystemen zur Verfügung gestellt werden.

Hier beschreiben wir eine Referenzarchitektur für Datenplattformen. Diese Referenzarchitektur baut auf der Architektur für ein klassisches Data Warehouse auf und ist darüber hinaus in Kontexten relevant, in denen

  1. die technischen Limitierungen der Data-Warehouse-Architektur überwunden werden müssen, beispielsweise, weil Daten in Echtzeit von Drittsystemen geladen und analysiert werden müssen oder
  2. fachliche Use-Cases abgedeckt werden müssen, die über die Data-Warehouse-Architektur hinausgehen, beispielsweise das Beantworten von Fragen auf Basis von Machine Learning (ML) Modellen, welche auch innerhalb der Plattform trainiert werden.

Im Folgenden beschäftigen wir uns zunächst mit der Definition des Begriffs „Datenplattform“, erläutern die Ziele und Qualitätsanforderungen, und beschreiben dann die verschiedenen Komponenten im Detail.

Einführung in Datenplattformen

In diesem Kapitel definieren wir die Begriffe “Data Warehouse” und “Datenplattform”, grenzen diese beiden Begriffe inhaltlich voneinander ab, und beschreiben die Ziele, die mit einer Datenplattform verfolgt werden sowie wichtige Qualitätsanforderungen an eine Datenplattform.

Definition “Data Warehouse”

Wenn wir in diesem Dokument den Begriff “Data Warehouse” verwenden, meinen wir damit “eine für Analysezwecke optimierte zentrale Datenbank, die Daten aus mehreren, in der Regel heterogenen Quellen zu einem gemeinsamen konsistenten Datenbestand zusammenführt und die Basis für die Aggregation von betrieblichen Kennzahlen und darauf aufbauende Analysen ist” (vgl. [1]).

Definition “Datenplattform”

Der Begriff “Datenplattform” bezeichnet eine Erweiterung des Data Warehouse um a) erweiterte und flexiblere Datenbeschaffungsmöglichkeiten, b) umfangreichere Möglichkeiten der Exploration, Analyse, Visualisierung und Nutzung der Daten im Allgemeinen, sowie c) die Bereitstellung von Diensten für Drittsysteme.

“Eine Datenplattform beinhaltet das vollständige Ende-zu-Ende-Management für durchaus große und heterogene Datenmengen. Sie bietet Dienste zur Erfassung, Verarbeitung, Speicherung, Auswertung und Verbreitung von Daten in (nahezu) Echtzeit. “ (vgl. [2])

Wesentliche Verantwortlichkeiten einer Datenplattform

Aus den obigen Definitionen für “Data Warehouse” und “Datenplattform” geht hervor, dass eine Datenplattform alle Verantwortlichkeiten hat, die ein Data Warehouse auch besitzt, und darüber hinaus weitere Verantwortlichkeiten hinzukommen. Diese weiteren Verantwortlichkeiten sorgen dafür, dass eine Datenplattform einen Business Value erzeugt, der von einem Data Warehouse nicht erzeugt werden kann.

Aus der Vogelperspektive sind die wesentlichen Verantwortlichkeiten einer Datenplattform die Folgenden:

  • Über Push- und/oder Pull-Mechanismen in Echtzeit und/oder über zeitgesteuerte Batch-Prozesse heterogene Daten aus einer oder mehreren externen Quellen zu beschaffen,
  • Die aus den externen Quellen beschafften Daten in verschiedenen Stufen zu speichern – wie beispielsweise die Rohdaten oder für bestimmte Analysen vorbereitete Daten –, und auf der Basis dieser unterschiedlichen internen Datenformate verschiedene Funktionalitäten zu ermöglichen, wie:
    • Replay-Fähigkeit der Datenbeschaffung,
    • umfangreiche Reporting- und Visualisierungs-Möglichkeiten (in Echtzeit),
    • Schnittstellen für Machine Learning und Data Science Anwendungsfälle, und
    • die Bereitstellung von Diensten und Daten für Drittsysteme

Abbildung 1 zeigt die Kontextabgrenzung der beschriebenen Datenplattform; Tabelle 1 liefert eine Beschreibung dazu.

20211123_Referenzarchitektur_GrafikKontextabgrenzung

Wie bei Data Warehouses spielen Daten-Konsistenz und -Verfügbarkeit für eine Datenplattform eine sehr wichtige Rolle. Wenn für eine Datenplattform beispielsweise eine schwache (engl. weak) Daten-Konsistenz ausreicht, können andere Architekturentscheidungen getroffen werden, als wenn eine starke (engl. strong) Daten-Konsistenz notwendig ist. Analoges gilt für die Daten-Verfügbarkeit: Da eine Datenplattform Daten in verschiedenen Stufen speichert, ist es u. U. nicht notwendig alle Daten dauerhaft in allen Stufen zu speichern; auch hier müssen Architekturentscheidungen getroffen werden. Daten-Konsistenz und -Verfügbarkeit im Kontext einer Datenplattform werden im Detail in einem weiteren Beitrag behandelt.

Tabelle 1: Kontextabgrenzung der Datenplattform

Abgrenzung zu Data-Warehouse-Architekturen

Mit den eben genannten Verantwortlichkeiten unterscheidet sich eine Datenplattform von Data- Warehouse-Architekturen in mehreren Aspekten, die wir nun beleuchten.

Datenbeschaffung. Ein Data Warehouse beschafft Daten von Drittsystemen per Batch-Verarbeitung; das heißt, dass ein Data Warehouse nur zu definierten Zeiten Daten beschafft. Eine Datenplattform kann neben der Batch-Verarbeitung zur Anbindung an externe Datenquellen auch Datenströme verarbeiten, sodass kontinuierlich Daten (in Echtzeit) beschafft werden können.

ETL-Prozess. Die Data-Warehouse-Architektur verfolgt einen Extract-Transform-Load-Ansatz (ETL). Kurz zusammengefasst heißt das, dass Daten zuerst aus verschiedenen Quellen beschafft, dann in das benötigte Zielschema der Datenbank transformiert, und abschießend abgespeichert werden.

Für eine Datenplattform gilt diese starre Datenbeschaffung nicht. Eine Datenplattform kann einen Extract-Load-Transform-Ansatz (ELT) verfolgen. Der wesentliche Unterschied zu ETL besteht also darin, dass die Daten nach dem Beschaffen direkt abgespeichert werden. Transformiert werden die Daten also erst im dritten Schritt, wenn feststeht, für welchen Zweck welche Daten in welchem Datenformat benötigt werden. Dies sorgt für eine einfachere und effizientere Nutzung der Daten.

Für eine Datenplattform ist neben ELT auch ein Extract-Transform-Load-Transform-Ansatz (ETLT) denkbar. Im Unterschied zu ELT werden die Daten also wie in einem Data Warehouse zuerst in ein Zielformat transformiert, bevor sie gespeichert werden. Über nachgelagerte Transformationsschritte erhält man analog zu ELT die Möglichkeit, die Daten für konkrete Zwecke zu transformieren. Zwei Transformationsschritte durchzuführen, kann den Vorteil haben, dass die Transformationen nach dem Load-Schritt einfacher sind, da die Daten im ersten Transformationsschritt bereits vorbereitend aufbereitet wurden.

Replay-Fähigkeit. Eine Datenplattform ermöglicht es – im Gegensatz zu einem Data Warehouse –, das Beschaffen der Daten aus den Drittsystemen erneut auszuführen, ohne dass die Drittsysteme die Daten tatsächlich erneut liefern müssen. Voraussetzung dafür ist, dass die von Drittsystemen in der Vergangenheit gelieferten Daten unverändert innerhalb der Datenplattform abgespeichert werden. Auf Basis dieser abgespeicherten Daten kann das erneute Beschaffen benötigter Daten jederzeit innerhalb der Datenplattform durchgeführt werden.

Durch diese Replay-Fähigkeit ist es u. a. möglich, nachgelagerte automatische Verarbeitungsprozesse auf Basis der ursprünglichen Daten der Drittsysteme erneut starten zu können.

Echtzeit-Services für Drittsysteme. Da ein Data Warehouse Daten von Drittsystemen periodisch beschafft – wie einmal am Tag -, ist die Flexibilität der Dienste, die ein Data Warehouse Drittsystemen anbieten kann, begrenzt. Da eine Datenplattform Daten in Echtzeit beschaffen kann, ist es möglich, externen Drittsystemen in Echtzeit Daten zur Verfügung zu stellen oder externe Drittsysteme in Echtzeit zu steuern. Revathy et al. nennt die Architektur, die es ermöglicht, auf eingehende Echtzeit-Events reagierend gezielt Drittsysteme zu bedienen, die Complex Event Processing Server Architecture [3]. Damit folgt also eine Datenplattform dieser Complex Event Processing Server Architecture.

Machine Learning und Data Science. Ein Data Warehouse stellt Aggregationen der beschafften und transformierten Daten bereit, auf deren Basis Analysen oder Data Mining durchgeführt werden können. Eine Datenplattform ermöglicht es darüber hinaus, Machine Learning und Data Science (DS) innerhalb der Datenplattform auf die beschafften und transformierten Daten anzuwenden. In Kombination mit der Replay-Fähigkeit ermöglicht eine Datenplattform damit, Drittsystemen und Anwendern Informationen zur Verfügung zu stellen, die über die Aggregationen von Data Warehouse-Systemen hinausgehen.

Durch die oben genannten Abgrenzungen erzeugen Datenplattformen auf mehreren Ebenen zusätzlichen Business Value gegenüber Data Warehouses.

Ziele einer Datenplattform

Damit eine Datenplattform auch tatsächlich effektiv und effizient ist, gibt es gewisse Ziele, die mit einer Datenplattform angestrebt werden sollten. Diese Referenzarchitektur einer Datenplattform adressiert die folgenden Ziele:

Ziel 1 – Single source of truth. Eine Datenplattform vereint – analog der Data-Warehouse-Architektur – unterschiedliche externe Datenquellen; die Datenbeschaffungsmöglichkeiten sind jedoch flexibler als die von Data-Warehouses, wie in “Abgrenzung zu Data-Warehouse-Architekturen“ beschrieben. Mit dieser Vereinigung der Daten bietet eine Datenplattform einen einheitlichen Gesamtblick auf alle Daten und insb. bildet sie damit die “single source of truth” für die Datenanalyse.

Ziel 2 – Abdeckung umfangreicher Data-Analytics-Szenarien. Eine Datenplattform bietet, da sie die Data-Warehouse-Architektur erweitert, auf der einen Seite Anwendern die Möglichkeit, über geeignete Visualisierungsprogramme Self-Service Business Intelligence (BI) zu betreiben. Auf der anderen Seite ist ein Ziel einer Datenplattform, Data-Analytics-Szenarien abzudecken, die über die Möglichkeiten des Self-Service BI hinausgehen. Dazu zählen beispielsweise, Data-Science-Werkzeuge beliebig anzuwenden zu können und Informationen von innerhalb einer Datenplattform trainierten Machine-Learning-Modellen zu erhalten.

Ziel 3 – Anbieten von Diensten für Drittsysteme. Ein weiteres Ziel einer Datenplattform ist es, Dienste für externe Drittsysteme und Datenkonsumenten anzubieten. Dazu zählt insb. die Bereitstellung von Informationen – in Echtzeit, sofern es die Anwendungsfälle erfordern.

Qualitätsanforderungen an die Datenplattform

Im Folgenden beschreiben wir einige Qualitätsanforderungen – angelehnt an die ISO 25010 –, die eine Datenplattform warum erfüllen sollte. Diese Liste ist nicht erschöpfend – es können zusätzliche, insbesondere von funktionalen Anforderungen getriebene Qualitätsanforderungen existieren, die ebenfalls berücksichtigt werden sollten.

Neben den funktionalen Anforderungen hat auch die Laufzeitumgebung der Datenplattform starken Einfluss auf die Qualitätsanforderungen: Gewisse Qualitätsanforderungen, wie Skalierbarkeit, lassen sich in einer Cloud-Umgebung tendenziell besser erreichen als in einer OnPremise-Umgebung; andere Qualitätsanforderungen, wie Datenschutz, lassen sich hingegen in einer OnPremise -Umgebung tendenziell besser erreichen als in einer Cloud -Umgebung.

Da die zu erfüllenden Qualitätsanforderungen die konkrete Implementierung einer Datenplattform maßgeblich beeinflussen, sollten die Qualitätsanforderungen so früh wie möglich geklärt werden.

In einem späteren Kapitel beschreiben wir konkrete Maßnahmen, wie die Qualitätsanforderungen erfüllt werden können.

Compliance-Konformität. Eine Datenplattform muss die an sie gestellten Compliance-Anforderungen erfüllen, insbesondere der geltenden Gesetze des Standorts, in der sie betrieben wird. Ist eine Datenplattform nicht Compliance-konform, kann ihr jederzeit in Teilen oder ganz der Betrieb untersagt werden. Deshalb müssen die Compliance-Kriterien für den konkreten Anwendungsfall einer Datenplattform so früh wie möglich ermittelt und die Einhaltung sichergestellt werden.

Sicherheit und Integrität. Schutz vor unberechtigtem Zugriff auf Daten und Komponenten der Datenplattform muss gewährleistet sein. Leichtfertiger Umgang mit Sicherheit kann neben Compliance-Verstößen auch dazu führen, dass die korrekte Funktionsweise der Datenplattform – in Teilen oder ganz – nicht mehr sichergestellt werden kann, wenn unberechtigte Dritte Komponenten der Datenplattform kompromittiert haben. Deshalb muss die Integrität der gespeicherten Daten an sich wie auch die der Daten verarbeitenden Komponenten gewährleistet sein.

Erweiterbarkeit. Eine Datenplattform wird mit dem Ziel betrieben, ihre Dienste und Funktionen über längere Zeit, d. h. über mehrere Jahre bis hin zu mehr als einem Jahrzehnt, anzubieten. Über die Betriebszeit einer Datenplattform können sich wesentliche Bestandteile ändern: Beispielsweise kann die Anforderung bestehen, neue Datenquellen mit neuen Datenformaten anzubinden, neue ML- oder DS-Werkzeuge bereitzustellen, oder neue Drittsysteme mit Daten und Diensten zu versorgen. Damit dies mit vertretbarem Aufwand möglich ist, muss sie gut und einfach erweiterbar sein.

Skalierbarkeit. Der Aspekt der Langlebigkeit einer Datenplattform hat nicht nur Auswirkungen auf die Erweiterbarkeit, sondern auch auf die Skalierbarkeit einer Datenplattform. Im Allgemeinen steigt die Menge der gespeicherten Informationen kontinuierlich [4]. In der Regel wird dieses Informationswachstum auch eine betriebene Datenplattform betreffen. Ein Wachstum der gespeicherten Daten wirkt sich auf verschiedenste Aspekte einer Datenplattform aus: Es muss genug Speicherkapazität zur Verfügung stehen, damit die Informationen langfristig abgespeichert werden können; die Zunahme der gespeicherten Informationen darf die Dauer der Verarbeitung der Daten nicht signifikant verlangsamen, damit eine Datenplattform die an sie gestellten zeitlichen Anforderungen einhalten kann; mehr gespeicherte Informationen können dafür sorgen, dass mehr Stakeholder Anforderungen an Verwendung und Auswertung der Daten haben. Damit diese und weitere Aspekte langfristig gewährleistet werden können, muss eine Datenplattform gut und einfach skalierbar sein.

Resilienz. Eine Datenplattform ist eine hoch-dynamische Drehscheibe für Daten, die zudem diverse interne und externe Schnittstellen hat. Dass in einem solchen System keine Fehler auftreten, ist deshalb eine nicht realistische Annahme; beispielsweise können jederzeit Hardware-Komponenten ausfallen oder externe Schnittstellen Kontrakte verletzen. Als Konsequenz muss eine Datenplattform in zwei Hinsichten resilient gegenüber aufgetretenen Fehlern – ob unabsichtlich oder böswillig herbeigeführt – sein:

  1. Fehler in einem Teil der Datenplattform sollen sich nicht auf andere Teile der Datenplattform auswirken. Beispielsweise sollen Fehler in der Datenbeschaffung nicht zu Fehlern des Reportings führen.
  2. Eine Datenplattform muss sich von Fehlern in einer akzeptablen Zeit erholen können oder durch manuelles Eingreifen leicht wieder in einen fehlerfreien Zustand gebracht werden können.

Latenz und Belastungsfähigkeit. Auf der einen Seite verarbeitet eine Datenplattform sehr große Datenmengen; auf der anderen Seite erzeugt sie mit dieser Verarbeitung wichtigen Business Value für eine Organisation. Diese beiden Aspekte stehen in Wechselwirkung und haben Auswirkungen auf die Latenz und Belastungsfähigkeit einer Datenplattform: Die Anwendungsfälle, die mit einer Datenplattform abgedeckt werden, können Anforderungen bzgl. Antwort- und Verarbeitungszeiten unterliegen, die nur bei einer entsprechend niedrigen Latenz eingehalten werden können. Zudem führt eine Datenplattform kontinuierlich Daten-Verarbeitungsschritte aus und auch unter hoher Belastung muss eine Datenplattform in der Lage sein, die ihr zur Verfügung stehenden Ressourcen vollständig und effizient zu nutzen, damit sie der Belastung standhalten und eine niedrige Latenz

Ausblick

Im ersten Teil dieser Referenzarchitektur haben wir mit der Definition der Datenplattform, der Abgrenzung zur Data-Warehouse-Architektur, den Verantwortlichkeiten, und der Beschreibung wichtiger Qualitätsanforderungen den Grundstein gelegt.

Im nächsten Teil dieser Referenzarchitektur werden wir die einzelnen Komponenten einer Datenplattform näher beleuchten. Neben einer Beschreibung der einzelnen Komponenten und deren Zusammenspiel werden wir aufzeigen, was es zu beachten gibt und an welchen Best Practices man sich orientieren kann. Seid also gespannt 🙂

Referenzen

[1] https://de.wikipedia.org/wiki/Data_Warehouse, Stand: 2021-10-11
[2] https://www.splunk.com/en_us/data-insider/what-is-a-data-platform.html, Stand: 2021-10-11
[3] From Data Warehouses to Streaming Warehouses: A Survey on the Challenges for Real-Time Data Warehousing and Available Solutions ( https://www.researchgate.net/p...)
[4] https://www.iwd.de/artikel/datenmenge-explodiert-431851/, Stand: 2021-10-11