In meinen letzten Projekten habe ich eine Referenzarchitektur entwickelt, die als Grundlage für den Aufbau von Datenplattformen dient, die sich gut skalieren und anpassen lassen. Ein zentrales Element dieser Architektur ist die Medaillon-Architektur. In meiner Referenzarchitektur kann man die Medallion-Architektur mit den Komponenten „Data Processing“ und „Data Storage Component“ umsetzen. Die einzelnen Schichten (Bronze, Silber, Gold) sind mit Datenobjekten strukturiert.
Medallion-Architektur
Ich möchte uns jetzt mal die Vor- und Nachteile dieses Ansatzes vorstellen:
Die Medallion-Architektur ist so aufgebaut, dass sie sich ganz einfach an wachsende Datenmengen anpassen kann. Jede Schicht – Bronze, Silber und Gold – steht für eine klar definierte Phase der Datenverarbeitung:
- Bronze Layer: Die Rohdaten werden direkt aus der Quelle gespeichert. Diese Schicht ist für die Skalierung ausgelegt, weil sie große, auch unstrukturierte Datenmengen aufnehmen kann.
- Silver Layer: Hier geht’s darum, die Daten so aufzubereiten, dass man sie für Auswertungen nutzen kann.
- Gold Layer: Bereitstellung hochwertiger Daten für Anwendungen wie Dashboards, KI-Modelle und Berichte.
Ein großer Pluspunkt ist, dass man jederzeit nachvollziehen kann, woher die Daten kommen und was mit ihnen passiert ist (Data Lineage). Die Schichtenstruktur macht es einfach, Datenflüsse und Transformationen zu verfolgen. Das ist zum Beispiel wichtig, um bestimmte Regeln und Vorgaben einzuhalten, wie zum Beispiel die Datenschutzgrundverordnung (DSGVO) oder HIPAA.
Die Medallion-Architektur hat auf jeden Fall viele Vorteile. Aber es gibt auch ein paar Punkte, die man meiner Meinung nach nicht außer Acht lassen sollte. Die Medallion-Architektur basiert oft auf Batch-Prozessen, die zu Verzögerungen führen können. Das heißt, Daten müssen in jeder Schicht verarbeitet und gespeichert werden, bevor sie zur nächsten übergehen. Das kann insbesondere bei zeitkritischen Anwendungen zu Problemen führen. Außerdem braucht jede Schicht eine weitere Kopie der Daten, was den Speicherplatz und die Rechenleistung für die Verarbeitung und Transformation erhöht und somit auch die Kosten steigen lässt. Gerade in der Cloud haben wir da in der Vergangenheit schon einige böse Überraschungen erlebt. In großen Organisationen können Teams oft eigene, benutzerdefinierte Pipelines entwickeln (Stichwort: Self Service), um individuelle Anforderungen zu erfüllen. Das führt dann aber zu weniger Standardisierung, mehr Komplexität in der Datenverwaltung und oft auch zu Pipelines, die die gleichen Daten laden und verarbeiten.
Die Medallion-Architektur ist eine bewährte Methode, um Datenplattformen so zu gestalten, dass sie sich einfach erweitern, anpassen und verwalten lassen. Wenn ich mir aber Datenprodukte wie sie im Data-Mesh-Ansatz beschrieben werden anschaue, sehe ich echte Herausforderungen hinsichtlich der Skalierbarkeit. Sowohl organisatorisch als auch in der Performance der Datenverarbeitung
Ich finde, Confluent zeigt mit ihrem Shift-Left-Ansatz eine interessante Alternative. Hier werden Data-Produkte früher in den Fokus gerückt. Ich denke darauf werde ich in einem zukünftigen Beitrag genauer eingehen.