Migration von einem nahtlosen Data Lake zu einem verteilten Data Mesh

Hallo Habr! Ich prĂ€sentiere Ihnen die Übersetzung des Artikels „Wie man sich ĂŒber einen monolithischen Datensee hinaus zu einem verteilten Datennetz bewegt “ von Zhamak Dehghani (Zhamak Degani) (alle Bilder stammen aus demselben Artikel).

Alle großen Unternehmen versuchen nun, riesige zentralisierte Data Warehouses zu bauen. Oder noch grĂ¶ĂŸere Cluster-Data Lakes (in der Regel auf einem HDUP). Ich kenne jedoch kein einziges Beispiel fĂŒr den erfolgreichen Aufbau einer solchen Datenplattform. Überall sind Schmerzen und Leiden sowohl fĂŒr diejenigen, die eine Datenplattform aufbauen, als auch fĂŒr Benutzer. Im folgenden Artikel bietet der Autor (Zhamak Degani) einen völlig neuen Ansatz zum Aufbau einer Datenplattform. Dies ist die Architektur der Datenplattform der vierten Generation namens Data Mesh. Der Originalartikel in englischer Sprache ist sehr umfangreich und ehrlich gesagt schwer zu lesen. Die Übersetzung erwies sich auch als ziemlich groß und der Text ist nicht sehr einfach: lange SĂ€tze, eher trockener Wortschatz. Ich habe die Gedanken des Autors nicht neu formuliert, um die Richtigkeit des Wortlauts zu gewĂ€hrleisten.Ich empfehle Ihnen jedoch dringend, diesen schwierigen Text noch durchzuarbeiten und den Artikel zu lesen. FĂŒr diejenigen, die sich mit Daten beschĂ€ftigen, wird es sehr nĂŒtzlich und sehr interessant sein.

Evgeny Cherny

Viele Unternehmen investieren in die nĂ€chste Generation von Data Lake in der Hoffnung, den unternehmensweiten Datenzugriff zu vereinfachen, geschĂ€ftliche Erkenntnisse zu liefern und automatisch qualitativ hochwertige Entscheidungen treffen zu können. GegenwĂ€rtige AnsĂ€tze zum Aufbau von Datenplattformen weisen jedoch Ă€hnliche Probleme auf, die es uns nicht ermöglichen, unsere Ziele zu erreichen. Um diese Probleme zu lösen, mĂŒssen wir das Paradigma eines zentralisierten Data Lake (oder seines VorgĂ€ngers, des Data Warehouse) aufgeben. Und gehen Sie zu einem Paradigma ĂŒber, das auf einer modernen verteilten Architektur basiert: Betrachten Sie GeschĂ€ftsdomĂ€nen als PrioritĂ€t der ersten Ebene, wenden Sie Plattformdenken an, um eine Infrastruktur mit der FĂ€higkeit zur Selbstbedienung und Wahrnehmung von Daten als Produkt zu schaffen.

Bild

Inhalt

  • Die aktuelle Architektur der Datenplattform in einem großen Unternehmen
    • Problematische architektonische AnsĂ€tze
    • domain driven
      • -
      • (data pipelines),
        • (discoverable)
        • (addressable)
        • ,
    • data- -
    • Zentralisierte Dateninfrastruktur als Plattform
  • Paradigmenwechsel in Richtung Data Mesh

Der Aufbau einer datengesteuerten Organisation bleibt eines der wichtigsten strategischen Ziele vieler Unternehmen, mit denen ich zusammenarbeite. Meine Kunden sind sich der Vorteile bewusst, Entscheidungen auf der Grundlage hochwertiger Daten zu treffen: GewĂ€hrleistung der höchsten QualitĂ€t des Kundendienstes, Hyperpersonalisierung, Reduzierung der Betriebskosten und der Zeit aufgrund von Optimierungen, Bereitstellung von Analyse- und GeschĂ€ftsanalysetools fĂŒr die Mitarbeiter. Sie investieren viel in den Aufbau moderner Datenplattformen. Trotz wachsender Anstrengungen und Investitionen in den Aufbau solcher Plattformen sehen viele Unternehmen die Ergebnisse als mittelmĂ€ĂŸig an.

Unternehmen stehen bei der Umwandlung in ein datengesteuertes Unternehmen vor vielen Schwierigkeiten: Migration von Legacy-Systemen und jahrzehntelangen Entwicklungssystemen, Widerstand aus der bestehenden Kultur und starker Wettbewerb zwischen verschiedenen GeschĂ€ftsprioritĂ€ten. Wie dem auch sei, ich möchte Ihnen einen architektonischen Ansatz vorstellen, der die GrĂŒnde fĂŒr das Scheitern vieler Initiativen im Bereich des Aufbaus von Datenplattformen berĂŒcksichtigt. Ich werde zeigen, wie wir die Lehren des letzten Jahrzehnts beim Aufbau verteilter Architekturen im Datenbereich anpassen und anwenden können. Ich habe diesen neuen architektonischen Ansatz Data Mesh genannt .

Bevor Sie weiterlesen, bitte ich Sie, beim Lesen dieses Artikels zu versuchen, die Vorurteile abzubauen, die durch das aktuelle Paradigma der traditionellen Datenplattformarchitektur entstanden sind. Seien Sie offen fĂŒr die Möglichkeit, von zentralisierten Data Lakes zu einer bewusst verteilten Data Mesh-Architektur zu wechseln. Akzeptieren Sie, dass Daten von Natur aus verteilt und allgegenwĂ€rtig sind.

Die aktuelle Architektur der Datenplattform in einem großen Unternehmen


Lassen Sie uns ĂŒber die zentralisierte, monolithische und geschĂ€ftsunabhĂ€ngige Bedeutung von Data Lake-Daten sprechen.

Fast jeder Kunde, mit dem ich zusammenarbeite, plant oder baut bereits seine Datenplattform der dritten Generation. Die Fehler frĂŒherer Generationen erkennen.

  • Erste Generation: proprietĂ€re Enterprise Data Warehouses und Business Intelligence-Plattformen. Dies sind Entscheidungen fĂŒr große Geldsummen, bei denen Unternehmen ebenso große technische Schulden hatten. Technische Schulden sind in Tausenden von nicht unterstĂŒtzten ETL-Jobs, Tabellen und Berichten enthalten, die nur eine kleine Gruppe von Spezialisten versteht, was zu einer UnterschĂ€tzung der positiven Auswirkungen dieser FunktionalitĂ€t auf das GeschĂ€ft fĂŒhrt.
  • Zweite Generation: Big Data-Ökosysteme mit Data Lake als Silberkugel. Ein komplexes Ökosystem aus Big Data und lang laufenden Batch-Jobs, das von einem zentralen Team hochspezialisierter Dateningenieure unterstĂŒtzt wird. Bestenfalls fĂŒr F & E-Analysen verwendet.

Datenplattformen der dritten Generation sind frĂŒheren Generationen mehr oder weniger Ă€hnlich, jedoch mit einer Tendenz zu

  1. Streaming, um DatenverfĂŒgbarkeit in Echtzeit mit einer Architektur wie Kappa bereitzustellen ,
  2. Kombinieren der Stapel- und Streaming-Verarbeitung zur Transformation von Daten mithilfe von Frameworks wie Apache Beam ,
  3. Nutzung von Cloud-Diensten zur Datenspeicherung und -verarbeitung sowie von Cloud-Plattformen fĂŒr maschinelles Lernen.

Die Datenplattform der dritten Generation beseitigt einige der Probleme frĂŒherer Generationen, wie z. B. die Echtzeit-Datenanalyse, und senkt auch die Kosten fĂŒr die Verwaltung einer Big-Data-Infrastruktur. Viele zugrunde liegende Merkmale, die zum Versagen frĂŒherer Generationen gefĂŒhrt haben, bleiben jedoch erhalten.

Bild
Abbildung 1: Drei Generationen von Datenplattformen

Problematische architektonische AnsÀtze


Um die grundlegenden EinschrĂ€nkungen aufzudecken, die alle Generationen von Datenplattformen fĂŒr sich haben, schauen wir uns ihre Architektur und Funktionen an. In diesem Artikel werde ich das GeschĂ€ft mit dem Streaming von Internetmedien (wie Spotify, SoundCloud, Apple iTunes) als Beispiel verwenden, um einige Konzepte zu erlĂ€utern.

Zentralisiert und monolithisch


Aus einer Höhe von 10.000 Metern sieht die Architektur der Datenplattform wie in Abbildung 2 unten aus.
Bild
Abbildung 2: Ansicht aus einer Höhe von 10.000 Metern auf einer monolithischen Datenplattform. Der

zentrale Teil der Architektur ist verantwortlich fĂŒr:

  • (to ingest) , , . , , : ; ; ; , ; ( ..).
  • , , , . , , — .
  • (to serve) . machine learning BI . , . , Kafka.

StandardmĂ€ĂŸig ist die allgemein akzeptierte Vereinbarung die Tatsache, dass die monolithische Datenplattform Daten speichert und besitzt, die zu verschiedenen GeschĂ€ftsdomĂ€nen gehören. Zum Beispiel "Ereignisse abspielen", "Verkaufs-KPIs", "KĂŒnstler", "Alben", "Labels", "Audio", "Podcasts", "Musikereignisse" usw. - Daten aus einer Vielzahl unterschiedlicher DomĂ€nen.

Trotz der Tatsache, dass wir in den letzten zehn Jahren das Konzept des domĂ€nengesteuerten Designs (und sein SchlĂŒsselmuster fĂŒr den begrenzten Kontext ) erfolgreich auf das Design unserer Informationssysteme angewendet haben , haben wir diese Konzepte beim Design von Datenplattformen weitgehend ignoriert. Wir sind unabhĂ€ngig von den GeschĂ€ftsdomĂ€nen vom Dateneigentum auf GeschĂ€ftsdomĂ€nenebene zum Dateneigentum ĂŒbergegangen. Wir sind stolzdas schuf den grĂ¶ĂŸten Monolithen - die Big Data Platform.

Bild
Abbildung 3: Eine zentralisierte Datenplattform ohne klare Grenzen zwischen Daten aus verschiedenen GeschÀftsbereichen. Und ohne das Eigentum an den relevanten Daten durch die GeschÀftsdomÀne kann ein

solches zentrales Modell fĂŒr kleine Organisationen funktionieren, die ĂŒber einfache GeschĂ€ftsdomĂ€nen und begrenzte Datenverbrauchsoptionen verfĂŒgen. Es ist jedoch nicht fĂŒr große Unternehmen mit großen und komplexen GeschĂ€ftsbereichen, einer großen Anzahl von Datenquellen und unterschiedlichen Anforderungen an die Arbeit mit Daten von Verbrauchern geeignet.

Es gibt zwei Schwachstellen in der Architektur und Struktur einer zentralisierten Datenplattform, die hĂ€ufig zu Fehlern beim Aufbau fĂŒhren:

  • Eine große Anzahl von Quellen und große Datenmengen. , , . , . . , , , . , data scientists . , ( ) , . , – - .
  • . . , . .

Hier muss ich klarstellen, dass ich mich nicht fĂŒr die Verwendung fragmentierter, unterschiedlicher Daten ausspreche, die in den Tiefen Ă€lterer Systeme verborgen sind. Solche Daten, die schwer zu erkennen, zu verstehen und zu verwenden sind. Ich unterstĂŒtze auch nicht die zahlreichen unterschiedlichen Data Warehouses innerhalb derselben Organisation, die das Ergebnis langjĂ€hriger akkumulierter technischer Schulden sind. Ich behaupte jedoch, dass die Antwort auf solche unzugĂ€nglichen fragmentierten Daten nicht darin besteht, eine zentralisierte Datenplattform mit einem zentralisierten Team zu erstellen, das Daten aus allen GeschĂ€ftsbereichen speichert und besitzt.

Dieser Ansatz lĂ€sst sich in großen Organisationen nicht skalieren, wie oben gezeigt.

Stark verbundene Fördererzersetzung


Bild
Abbildung 4: Architektonische Zerlegung der Datenplattform

Das zweite Problem bei der traditionellen Architektur der Datenplattform besteht darin, wie wir die Architektur zerlegen. Wenn es auf 3.000 Meter ĂŒber der Architektur der Datenplattform abfĂ€llt, finden wir eine architektonische Zerlegung um die Funktionen Laden, Bereinigen, Aggregieren, Bereitstellen von Daten usw. Wie im vorherigen Abschnitt beschrieben, erfordert die Notwendigkeit, neue Quellen und neue Verbraucher zu verbinden, ein Plattformwachstum. Architekten mĂŒssen einen Weg finden, das System zu skalieren, indem sie es in architektonische Quanten zerlegen. Architekturquantum, wie im Buch „ Building Evolutionary Architectures”, Ist eine unabhĂ€ngig einsetzbare Komponente mit hoher funktionaler KonnektivitĂ€t, die alle fĂŒr den ordnungsgemĂ€ĂŸen Betrieb des Systems erforderlichen Strukturelemente enthĂ€lt. Die Motivation, das System in Architekturquanten zu unterteilen, besteht hauptsĂ€chlich darin, unabhĂ€ngige Teams zu bilden, von denen jedes sein eigenes Architekturquantum (funktionales Subsystem) erstellt und aufrechterhĂ€lt. Auf diese Weise können Sie die Arbeit parallelisieren und die Geschwindigkeit und Skalierbarkeit des Betriebs erhöhen.

Von frĂŒheren Generationen von Datenplattformen beeinflusst, unterteilen Architekten die Plattform in eine Reihe von Datenverarbeitungsschritten. Dies ist eine Pipeline, die die Datenverarbeitung implementiert: Laden, Vorbereiten, Aggregieren, Bereitstellen des Zugriffs / Entladens usw.

Obwohl diese Partitionierung ein gewisses Maß an Skalierung bietet, weist sie auch eine interne EinschrĂ€nkung auf, die die Entwicklung neuer Funktionen auf der Plattform verlangsamt: Es besteht eine hohe KonnektivitĂ€t zwischen den Schritten der Pipeline, die nicht die erforderliche UnabhĂ€ngigkeit der Arbeit einzelner Teams ermöglicht.

Kehren wir zu unserem Beispiel fĂŒr Streaming-Medien zurĂŒck. Die Streaming-Media-Plattformen im Internet haben ein starkes Domain-Design in Bezug auf die Art der von ihnen angebotenen Medien. Sie beginnen ihre Dienste hĂ€ufig mit „Songs“ und „Alben“ und gelten dann fĂŒr „Musikereignisse“, „Podcasts“, „Radiosendungen“, „Filme“ usw. Aktivieren einer neuen Funktion, z. B. Sichtbarkeit fĂŒr „Podcasts“. Wiedergaberate “erfordert eine Änderung aller Komponenten der Pipeline. Die Teams mĂŒssen neue Dienste zum Laden, Bereinigen und Vorbereiten von Daten (einschließlich Aggregation) entwickeln, um die Sichtbarkeit der „Podcasts-Wiedergaberate“ zu verbessern. Dies erfordert eine Synchronisation zwischen den Releases verschiedener Funktionsteams. Viele Datenplattformen verwenden konfigurationsbasierte Download-Tools, mit denen solche Aufgaben problemlos erledigt werden können.wie einfach neue Quellen hinzuzufĂŒgen oder bestehende zu erweitern. Dies beseitigt jedoch nicht die Notwendigkeit eines End-to-End-Release-Managements in allen Phasen der Datenverarbeitungspipeline. Um Benutzern den Zugriff auf neue Daten zu ermöglichen, muss lediglich die gesamte Pipeline geĂ€ndert werden. Dies schrĂ€nkt unsere FĂ€higkeit, die Geschwindigkeit und den Umfang der Entwicklung der Datenplattform als Reaktion auf das Aufkommen neuer Datenquellen und Benutzer zu erhöhen, erheblich ein.Dies schrĂ€nkt unsere FĂ€higkeit, die Geschwindigkeit und den Umfang der Entwicklung der Datenplattform als Reaktion auf das Aufkommen neuer Datenquellen und Benutzer zu erhöhen, erheblich ein.Dies schrĂ€nkt unsere FĂ€higkeit, die Geschwindigkeit und den Umfang der Entwicklung der Datenplattform als Reaktion auf das Aufkommen neuer Datenquellen und Benutzer zu erhöhen, erheblich ein.

Unterschiedliche und hochspezialisierte Teams


Das dritte Problem bei modernen Datenplattformen besteht darin, wie wir die Teams strukturieren, die die Plattform erstellen und warten. Wenn wir uns mit der Architektur einer herkömmlichen Datenplattform befassen, werden wir eine Gruppe eng spezialisierter Dateningenieure sehen, die von den Organisationseinheiten getrennt sind, in denen Daten erstellt oder fĂŒr die Entscheidungsfindung verwendet werden. Datenplattformingenieure werden nur aufgrund ihrer technischen Kompetenzen und ihrer Erfahrung mit Big-Data-Technologien in separaten Teams ausgewĂ€hlt. In solchen Teams fehlen betriebswirtschaftliche Kenntnisse der entsprechenden Themenbereiche (GeschĂ€ftsbereiche).

Bild
Abbildung 5: Verstreute, eng spezialisierte Datenplattformteams

Persönlich beneide ich das Leben von Datenplattformingenieuren nicht. Sie sollten Daten von Teams erhalten, die keinen Anreiz haben, qualitativ hochwertige und korrekte Daten bereitzustellen. Ihnen fehlt ein VerstĂ€ndnis fĂŒr die geschĂ€ftliche Bedeutung der Daten, die Sie herunterladen mĂŒssen. Sie mĂŒssen Daten vorbereiten, um die analytischen und betrieblichen Anforderungen zu erfĂŒllen, ohne ein klares VerstĂ€ndnis der Endverwendung dieser Daten zu haben und ohne Zugang zu Experten auf dem Gebiet des Verbrauchs dieser Daten.

Es sollte beachtet werden, dass wir zuvor auf ein Ă€hnliches Problem der Teamtrennung gestoßen sind. Und sie konnten eine erfolgreiche Lösung fĂŒr dieses Problem finden.

Bild

In unserem Beispiel mit Multimedia-Streaming haben wir den Befehl „Media Player“, der Daten darĂŒber enthĂ€lt, wie Benutzer mit dem Player interagieren: Songs, die Benutzer hören, getĂ€tigte KĂ€ufe, AudioqualitĂ€t der Songs, die sie hören usw. Auf der anderen Seite gibt es Verbraucherteams mit relevanten Daten: ein Team von Songempfehlungen; VerkaufsĂŒberwachungsteam; KĂŒnstler-Zahlungsteam usw. Und zwischen ihnen ein trauriges Team von Entwicklern einer Datenplattform, die auf Kosten eines großen Aufwands Daten von einem Team empfĂ€ngt und allen Verbrauchern (nach vorlĂ€ufiger Verarbeitung) Zugriff darauf gewĂ€hrt.

In Wirklichkeit haben wir unbeteiligte Teams von Datenquellen und frustrierte Teams von Datenkonsumenten, die um einen Platz an der Spitze des RĂŒckstands des Datenplattform-Entwicklungsteams kĂ€mpfen mĂŒssen.

Wir haben eine Architektur und Organisationsstruktur geschaffen, die nicht die erforderliche Skalierbarkeit bietet und die Ziele des Aufbaus einer datengesteuerten Organisation nicht erreichen kann.

Datenplattformarchitektur der nÀchsten Generation


Und was ist die Lösung fĂŒr die oben diskutierten Probleme? Meiner Meinung nach ist ein Paradigmenwechsel erforderlich. Ein Paradigmenwechsel an der Schnittstelle von Methoden, die eine wichtige Rolle beim Aufbau einer modernen skalierbaren verteilten Architektur gespielt haben und die die gesamte Technologiebranche beschleunigt implementiert hat. Methoden, die zu erfolgreichen Ergebnissen gefĂŒhrt haben.

Ich glaube, dass die nĂ€chste Architektur fĂŒr Unternehmensdatenplattformen darin besteht, die Distributed Domain Driven Architecture zu integrieren, Self-Service-Plattformen zu entwerfen und Produkte fĂŒr Daten zu denken.

Bild
Abbildung 6: Wechsel des Paradigmenwechsels der Datenplattform der nÀchsten Generation.

Ich verstehe, dass dies wie viele Schlagworte in einem Satz klingt, aber jede dieser Komponenten hat sich unglaublich positiv auf die Änderung der technischen Grundlagen unserer Informationssysteme ausgewirkt. Lassen Sie uns sehen, wie wir jede dieser Disziplinen auf die Datenwelt anwenden können, um uns von dem aktuellen Paradigma zu entfernen, das aus vielen Jahren des Aufbaus von Data Warehouses frĂŒherer Generationen ĂŒbernommen wurde.

Daten- und verteilte domÀnengesteuerte Architektur


Zerlegung und Besitz von Daten basierend auf der Ausrichtung der GeschÀftsdomÀne


Das Buch von Eric Evans, Domain-Driven Design , hat das zeitgenössische architektonische Denken und damit die Organisationsmodellierung tiefgreifend beeinflusst. Die neue Microservice-Architektur zerlegte Informationssysteme in verteilte Services, die innerhalb der Grenzen bestimmter GeschÀftsbereiche erstellt wurden. Dies hat die Art und Weise, wie Teams gebildet werden, grundlegend verÀndert: Von nun an kann ein Team seine Microservices unabhÀngig und autonom besitzen.

Interessanterweise haben wir das Konzept der GeschÀftsdomÀnen im Datenbereich ignoriert. Kommende Anwendung von domÀnengesteuertem Design in der Datenplattformarchitektur: Dies ist die Entstehung von GeschÀftsdomÀnenereignissenin Informationssystemen und deren Laden in monolithische Datenplattformen. Nach dem Hochladen der Daten in den zentralen Speicher geht jedoch das Konzept des Eigentums an Daten aus verschiedenen GeschÀftsbereichen durch verschiedene Teams verloren.

Um eine monolithische Datenplattform zu dezentralisieren, mĂŒssen Sie Ihre Meinung zu Daten, ihrem Standort und ihrem Besitz Ă€ndern. Anstatt Daten an einen Data Lake oder eine Plattform zu ĂŒbertragen, sollten DomĂ€nen ihre DatensĂ€tze benutzerfreundlich speichern und verwalten.

In unserem Beispiel können Sie diese DatensĂ€tze nicht in der DomĂ€ne speichern und verarbeiten, anstatt Daten vom Media Player in ein zentrales Repository zur weiteren Verarbeitung durch das Repository-Supportteam zu laden und keinem anderen Team Zugriff darauf zu gewĂ€hren. Der Ort, an dem diese DatensĂ€tze physisch gespeichert werden, kann nach Ihren WĂŒnschen technisch innerhalb der DomĂ€ne implementiert werden. NatĂŒrlich können Sie eine zentralisierte Architektur verwenden, aber die Daten der Mediaplayer selbst bleiben im Besitz und unter der UnterstĂŒtzung des Teams der entsprechenden DomĂ€ne, in der diese Daten generiert werden. In unserem Beispiel kann die EntwicklungsdomĂ€ne fĂŒr Songempfehlungen DatensĂ€tze in dem Format erstellen, das fĂŒr die Verwendung am besten geeignet ist (z. B. in Form von Diagrammstrukturen), basierend auf Daten vom Media Player. Wenn es andere Teams gibt,Wer dieses Format fĂŒr bequem und nĂŒtzlich hĂ€lt, kann auch darauf zugreifen.

Dies bedeutet natĂŒrlich, dass wir Daten in verschiedenen DomĂ€nen duplizieren können, wenn wir ihr Format in ein Format Ă€ndern, das fĂŒr einen bestimmten Verbraucher geeignet ist.

All dies erfordert eine Verschiebung unseres Denkens vom Herunterladen von Daten (ĂŒber ETL oder Streaming) zur Skalierung dieses Prozesses auf alle DomĂ€nen. Das Architekturquantum in einer domĂ€nenorientierten Datenplattform ist eine GeschĂ€ftsdomĂ€ne, nicht die Phase des Ladens und Transformierens von Daten.

Bild
Abbildung 7: Zerlegung einer Architektur basierend auf GeschÀftsdomÀnen und datenbesitzenden Teams.

QuelldomÀnen-Datasets


Einige GeschĂ€ftsbereiche sind gut auf Datenquellen (Informationssysteme) abgestimmt. Im Idealfall sind das Informationssystem und das dazugehörige Team nicht nur fĂŒr das HinzufĂŒgen und UnterstĂŒtzen von GeschĂ€ftsfunktionen verantwortlich, sondern stellen auch DatensĂ€tze bereit, die die Fakten und die RealitĂ€t des entsprechenden GeschĂ€ftsbereichs beschreiben. Auf der Ebene einer großen Organisation besteht jedoch in der Regel keine eindeutige Entsprechung zwischen der GeschĂ€ftsdomĂ€ne und dem Informationssystem. In der Regel gibt es fĂŒr jede DomĂ€ne mehrere Informationssysteme, die unterschiedliche GeschĂ€ftsprozesse einer bestimmten DomĂ€ne automatisieren und dementsprechend zugehörige Daten speichern. FĂŒr solche DomĂ€nen mĂŒssen unterschiedliche Daten integriert und aggregiert werden, um DatensĂ€tze zu erhalten, die ĂŒber die gesamte GeschĂ€ftsdomĂ€ne hinweg konsistent und ausgerichtet sind.

Das beste Format zum Speichern von Fakten, die eine GeschÀftsdomÀne beschreiben, ist Domain Events . Sie können als verteiltes Ereignisprotokoll mit Zeitstempeln gespeichert werden. Dieses Protokoll kann autorisierten Verbrauchern Zugriff gewÀhren.

ZusĂ€tzlich zu diesen Protokollen mĂŒssen Datenquellen auch Zugriff auf regelmĂ€ĂŸige Snapshots von SchlĂŒsseldatensĂ€tzen in ihrer DomĂ€ne bieten. Das Zusammenfassen solcher Bilder bezieht sich auf das Zeitintervall, das das Änderungsintervall fĂŒr Ihre Domain besser widerspiegelt (normalerweise ein Tag / eine Woche / ein Monat / ein Quartal usw.).

Bitte beachten Sie, dass fĂŒr Verbraucher vorbereitete GeschĂ€ftsdomĂ€nendatensĂ€tze von internen QuellendatensĂ€tzen (die Informationssysteme fĂŒr ihre Arbeit verwenden) getrennt werden sollten. Sie sollten an einem physisch anderen Ort gespeichert werden, der fĂŒr die Arbeit mit Big Data geeignet ist. Als nĂ€chstes wird beschrieben, wie eine solche Data Warehouse- und Service-Infrastruktur dafĂŒr erstellt wird.

FĂŒr Verbraucher erstellte domĂ€nenspezifische DatensĂ€tze sind die grundlegendsten Elemente der gesamten Architektur. Sie transformieren sich nicht und sind nicht auf einen bestimmten Verbraucher zugeschnitten, sondern sind Rohdaten und unverarbeitete Daten.

Consumer-Domain-Datasets


Andere DomĂ€nen sind eng mit Datenkonsumenten verbunden. Die DatensĂ€tze einer solchen DomĂ€ne werden so erstellt, dass sie bei Verwendung zu den zugehörigen Benutzerszenarien passen. Diese Datasets unterscheiden sich von QuelldomĂ€nendatensĂ€tzen. Dies sind keine Rohdaten, sondern Daten, die mehrere Transformationsstufen durchlaufen haben. Die Struktur dieser DatensĂ€tze und ihre Darstellung sind auf die spezifischen FĂ€lle ihrer Verwendung zugeschnitten. Jene. Dies ist ein Analogon zu spezialisierten Data Marts in einem zentralen Repository. FĂŒr solche DatensĂ€tze der Consumer Domain (Consumer Domain Datasets) sollte die Möglichkeit einer schnellen Wiederherstellung aus Rohdaten bereitgestellt werden.

Verteilte Datenpipelines, die in ihren DomÀnen implementiert sind


Das Eigentum an Daten in unserer neuen Architektur wird von der zentralen Plattform an Teams innerhalb von GeschÀftsdomÀnen delegiert, aber die Notwendigkeit der Datenbereinigung, -vorbereitung und -aggregation (unter Verwendung der Datenpipeline) verschwindet nicht. Daher wird die Implementierung einer eigenen Datenpipeline zu einer internen Aufgabe des Business Domain-Teams. Als Ergebnis erhalten wir unsere eigenen Domain-Daten-Pipelines, die auf alle Domains verteilt sind.

Beispielsweise sollten QuelldomÀnen Datenbereinigung, Entfernung von Duplikaten, Datenanreicherung usw. umfassen, damit andere DomÀnen diese Daten ohne vorherige Verarbeitung verwenden können. Jeder dieser DatensÀtze muss hinsichtlich der DatenqualitÀt seinem Service Level-Ziel entsprechen.

In Àhnlicher Weise werden die Phasen des Aufbaus spezialisierter Vitrinen einer zentralisierten Pipeline zur Datenverarbeitung in die eigenen Datenpipelines von VerbraucherdomÀnen geleitet, die VerbraucherdomÀnen-Datasets erstellen.

Bild
Abbildung 8: Verteilte Datenverarbeitungspipelines, die in ihren DomÀnen implementiert sind

Es scheint, dass ein solches Modell zu einer großen Doppelarbeit in jeder DomĂ€ne fĂŒhrt, um eine eigene Implementierung einer Datenverarbeitungspipeline zu erstellen. Wir werden ĂŒber dieses Problem im Abschnitt „Zentralisierte Dateninfrastruktur als Plattform“ sprechen.

Daten- und Produktdenken


Die Übertragung des Eigentums an Daten und die Verantwortung fĂŒr die Entwicklung und Wartung von Datenverarbeitungspipelines auf die Seite von GeschĂ€ftsbereichen können ernsthafte Bedenken hinsichtlich der fortgesetzten VerfĂŒgbarkeit und Benutzerfreundlichkeit solcher verteilter DatensĂ€tze hervorrufen. Daher kommen wir hier zum praktischen Produktdenken in Bezug auf Daten.

DomÀnendaten als Produkt


In den letzten zehn Jahren hat das Produktdenken die Entwicklung von Informationssystemen von Organisationen tiefgreifend durchdrungen und den Ansatz fĂŒr diese Entwicklung ernsthaft verĂ€ndert. DomĂ€nenteams fĂŒr die Entwicklung von Informationssystemen bieten neue Funktionen in Form von APIs, die Entwickler in Organisationen als Bausteine ​​verwenden, um Funktionen höherer Ordnung und einen höheren Wert zu schaffen. Die Teams bemĂŒhen sich, den Benutzern ihrer APIs durch eine klare und detaillierte Dokumentation, auf die Benutzer leicht zugreifen können, die bestmögliche Erfahrung zu bieten. Testumgebungen sorgfĂ€ltig nachverfolgte QualitĂ€tsindikatoren.

Damit eine verteilte Datenplattform erfolgreich ist, mĂŒssen Datenteams von GeschĂ€ftsbereichen Produktdenken in Bezug auf die Bereitstellung von DatensĂ€tzen anwenden: Wahrnehmen der Daten, die sie als Produkt aufbereiten, und Verbraucher (Analysten, Datenwissenschaftler, Dateningenieure, ML-Spezialisten) etc.) als Ihre Kunden.

Bild
Abbildung 9: Merkmale von Domain-Datasets als Produkte

Betrachten Sie unser Beispiel - Streaming von Medieninhalten ĂŒber das Internet. Der wichtigste GeschĂ€ftsbereich ist die Geschichte der Reproduktion: von wem, wo, wann und welche Songs wurden gehört. Diese Domain hat verschiedene SchlĂŒsseldatenkonsumenten innerhalb der Organisation. Man benötigt Daten im Echtzeitmodus, um die Benutzererfahrung zu untersuchen und Probleme und Wiedergabefehler rechtzeitig zu erkennen. Andere interessieren sich fĂŒr historische SchnappschĂŒsse, die nach Tag oder Monat zusammengefasst sind. Daher bietet unsere Domain Daten in zwei Formaten an: Wiedergabeereignisse in Streaming-Form (Streaming, Thema in Kafka oder Ă€hnlichem) und aggregierte Wiedergabeereignisse im Batch-Format (Datei, Tabelle in Hive usw.).

Um den Verbrauchern die bestmögliche Benutzererfahrung zu bieten, mĂŒssen Business Domain-Datenprodukte die folgenden Hauptmerkmale aufweisen.

Bequemlichkeit und einfache Erkennung (auffindbar)


Es muss sichergestellt werden, unter welchen Bedingungen ein Datenprodukt leicht gefunden werden kann. Die hĂ€ufigste Implementierung dieser Anforderung ist das Vorhandensein einer Registrierung - eines Katalogs aller verfĂŒgbaren Datenprodukte mit den erforderlichen Metainformationen (wie EigentĂŒmer, Herkunftsquellen, Datensatzbeispiele, AktualisierungshĂ€ufigkeit, Struktur von DatensĂ€tzen usw.). Ein solcher zentraler Dienst ermöglicht es Datenkonsumenten, den Datensatz, an dem sie interessiert sind, leicht zu finden. Jedes Datenprodukt aus einer beliebigen GeschĂ€ftsdomĂ€ne muss in einem zentralen Datenverzeichnis registriert sein.

Bitte beachten Sie, dass es eine Verschiebung von einer einzigen zentralisierten Plattform, die alle Daten besitzt, zu verteilten Datenprodukten verschiedener GeschÀftsdomÀnen gibt, die in einem einzigen Datenverzeichnis registriert sind.

Eindeutige Adresse (adressierbar)


Jedes Datenprodukt muss eine eindeutige Adresse haben (gemĂ€ĂŸ der globalen Vereinbarung), die es seinen Verbrauchern ermöglicht, programmgesteuert darauf zuzugreifen. Unternehmen können abhĂ€ngig von den verfĂŒgbaren Methoden zur physischen Speicherung von Daten und den Formaten der Daten selbst verschiedene Vereinbarungen ĂŒber den Namen der Datenprodukte und deren Standort treffen. FĂŒr eine verteilte dezentrale Architektur sind solche allgemeinen Konventionen erforderlich. Dataset-Adressstandards beseitigen Reibungsverluste beim Suchen und Zugreifen auf Datenprodukte.

DatenqualitÀt


Niemand wird ein Produkt verwenden, das nicht glaubwĂŒrdig ist. In den Datenplattformen der aktuellen Generation ist das Herunterladen und Veröffentlichen von Daten, die Fehler enthalten und nicht die gesamte GeschĂ€ftswahrheit widerspiegeln, weit verbreitet, d. H. Daten, denen nicht vertraut werden kann. In diesem Teil konzentriert sich eine erhebliche Anzahl von ETL-Jobs, die Daten nach dem Laden löschen.

Die neue Architektur erfordert, dass die EigentĂŒmer von Datenprodukten SLO (Service Level Objective) in Bezug auf Genauigkeit, ZuverlĂ€ssigkeit und Relevanz der Daten anwenden. Um eine akzeptable QualitĂ€t sicherzustellen, mĂŒssen bei der Erstellung eines Datenprodukts Methoden wie Datenbereinigung und automatische DatenintegritĂ€tstests verwendet werden. Informationen zur Datenherkunft in den Metadaten jedes Datenprodukts geben den Verbrauchern zusĂ€tzliches Vertrauen in das Produkt selbst und dessen Eignung fĂŒr bestimmte Anforderungen.

Der Zielwert des DatenqualitĂ€tsindikators (oder des akzeptablen Bereichs) hĂ€ngt vom Datenprodukt einer bestimmten GeschĂ€ftsdomĂ€ne ab. Beispielsweise kann eine DomĂ€ne "Wiederholungsereignis" zwei verschiedene Produkte bereitstellen: eines im Echtzeitmodus mit einer geringeren Genauigkeit (einschließlich verpasster oder sich wiederholender Ereignisse); und die zweite mit einer lĂ€ngeren Verzögerung und einer höheren DatenqualitĂ€t. Jedes Datenprodukt definiert und verwaltet ein Zielniveau fĂŒr die IntegritĂ€t und ZuverlĂ€ssigkeit seiner Daten in Form eines SLO-Satzes (Service Level Objective).

Klare Beschreibung der Semantik und Datensyntax


QualitĂ€tsprodukte sollten einfach zu bedienen sein. Um Datenprodukte zu erstellen, die fĂŒr Analysten, Ingenieure und Datenwissenschaftler so einfach wie möglich sind, mĂŒssen gut beschriebene Semantik und Datensyntax vorhanden sein. Im Idealfall werden BeispieldatensĂ€tze als Beispiele bereitgestellt.

Datenintegrierbarkeit und organisationsweite Standards


Eines der Hauptprobleme in einer verteilten domĂ€nengesteuerten Datenarchitektur ist die Notwendigkeit, Daten aus verschiedenen DomĂ€nen zu integrieren. Der SchlĂŒssel zur einfachen und effizienten Datenintegration zwischen DomĂ€nen liegt in der Definition und Befolgung von Regeln und Standards. Solche Standards sollten auf Organisationsebene definiert werden. Standardisierung ist erforderlich im Bereich der Bestimmung akzeptabler Datentypen und Regeln fĂŒr deren Anwendung, Konventionen fĂŒr Namen und Adressen von Datenprodukten, Metadatenformaten usw.

FĂŒr EntitĂ€ten, die in einer anderen Form und mit unterschiedlichen Attributen in verschiedenen DomĂ€nen gespeichert werden können, muss die Praxis des Stammdatenmanagements implementiert werden. Weisen Sie ihnen globale Bezeichner zu und richten Sie die Mengen- und vor allem Attributwerte auf alle DomĂ€nen aus.

Die GewĂ€hrleistung der InteroperabilitĂ€t von Daten fĂŒr ihre effektive Integration sowie die Festlegung von Standards fĂŒr die Speicherung und PrĂ€sentation von Datenprodukten auf Organisationsebene sind eines der Grundprinzipien fĂŒr den Aufbau solcher verteilter Systeme.

Datensicherheit und Zugriffskontrolle


Der sichere Zugriff auf Daten ist ein Muss, unabhĂ€ngig davon, ob die Architektur zentralisiert ist oder nicht. In der Welt der dezentralen, auf GeschĂ€ftsdomĂ€nen ausgerichteten Datenprodukte ist eine Zugriffskontrolle mit einem höheren Grad an GranularitĂ€t fĂŒr jeden Datensatz möglich (und sollte angewendet werden). Richtlinien fĂŒr die Datenzugriffskontrolle können zentral definiert, jedoch fĂŒr jedes Datenprodukt separat implementiert werden. Als bequeme Möglichkeit, die Zugriffssteuerung auf DatensĂ€tze zu implementieren, können Sie das Enterprise Identity Management-System und die rollenbasierte Zugriffssteuerung verwenden .

Als NĂ€chstes wird eine einzelne Infrastruktur beschrieben, mit der Sie die oben genannten Funktionen fĂŒr jedes Datenprodukt einfach und automatisch implementieren können.

FunktionsĂŒbergreifender Befehl fĂŒr GeschĂ€ftsdomĂ€nendaten


Die folgenden Rollen sollten in Teams vertreten sein, die Daten in Form von Datenprodukten bereitstellen: EigentĂŒmer des Datenprodukts und Dateningenieur.

Der EigentĂŒmer des Datenprodukts ist fĂŒr das Konzept und die Roadmap, den Lebenszyklus seiner Produkte, verantwortlich. Misst die Zufriedenheit seiner Kunden und misst und verbessert stĂ€ndig die QualitĂ€t der Daten seiner GeschĂ€ftsdomĂ€ne. Es fĂŒllt und gleicht den RĂŒckstand seiner Datenprodukte mit den Anforderungen der Datenkonsumenten aus.

Außerdem mĂŒssen EigentĂŒmer von Datenprodukten wichtige Metriken und Leistungsindikatoren (KPIs) fĂŒr ihre Produkte definieren. Beispielsweise kann die Zeit, die der Benutzer benötigt, um sich mit dem Datenprodukt vertraut zu machen und es zu verwenden, eine dieser Metriken sein.

Um eigene Datenpipelines innerhalb einer GeschĂ€ftsdomĂ€ne zu erstellen und zu verwalten, muss das Team Dateningenieure umfassen. Ein guter Nebeneffekt davon wird die Verbreitung relevanter FĂ€higkeiten innerhalb des GeschĂ€ftsbereichs sein. Nach meinen Beobachtungen fehlen derzeit einigen Dateningenieuren, obwohl sie in der Verwendung ihrer Tools und Technologien kompetent sind, Kenntnisse ĂŒber Standardpraktiken der Softwareentwicklung bei der Erstellung von Datenprodukten. Zuallererst praktizieren DevOps die kontinuierliche Lieferung und das automatische Testen. Andererseits verfĂŒgen Softwareentwickler, die Informationssysteme entwickeln, hĂ€ufig nicht ĂŒber genĂŒgend Erfahrung und Wissen auf dem Gebiet der Technologien und Tools fĂŒr die Arbeit mit Daten als Produkt.Durch die Kombination zu multifunktionalen Teams innerhalb des GeschĂ€ftsbereichs entstehen Spezialisten mit einem breiteren Profil. Ähnliches haben wir bei der Entwicklung von DevOps beobachtet, als neue Ingenieurtypen auftauchten, wie zSRE .

Bild
Abbildung 10: Befehl fĂŒr funktionsĂŒbergreifende DomĂ€nendaten

Zentralisierte Dateninfrastruktur als Plattform


Einer der sensiblen Aspekte der verteilten domĂ€nengesteuerten Architektur der Datenplattform ist die Notwendigkeit, die fĂŒr den Betrieb des in Datenpipelines verwendeten Infrastruktur- und Technologie-Stacks erforderlichen Anstrengungen und FĂ€higkeiten in jeder DomĂ€ne zu duplizieren. GlĂŒcklicherweise ist die Schaffung einer gemeinsamen Infrastruktur als Plattform eine Aufgabe, deren Lösung in der IT gut gelernt ist (jedoch nicht im Bereich der Arbeit mit Daten).

Das Dateninfrastruktur-Team muss die Tools besitzen und als Service bereitstellen, die fĂŒr GeschĂ€ftsdomĂ€nen erforderlich sind, um ihre Datenprodukte zu sammeln, zu verarbeiten und zu speichern.

Bild
Abbildung 11: Dateninfrastruktur als Plattform

Die Dateninfrastruktur als Plattform sollte frei von domĂ€nenspezifischen Konzepten oder GeschĂ€ftslogiken sein. Außerdem sollte die Plattform die KomplexitĂ€t ihrer Implementierung vor den Benutzern verbergen und die maximale FunktionalitĂ€t fĂŒr die Verwendung im Self-Service-Modus bereitstellen. Hier ist eine Liste einiger Funktionen, die eine zentralisierte Dateninfrastruktur wie eine Plattform bieten sollte:

  • Skalierbare Datenspeicherung in verschiedenen Formaten
  • DatenverschlĂŒsselung (hier Hashing, Depersonalisierung usw.)
  • Versionierung von Datenprodukten
  • Speichern von Daten Produktdatenschema
  • Datenzugriffskontrolle
  • Protokollierung
  • Orchestrierung von Threads / Datenverarbeitungsprozessen
  • In-Memory-Caching
  • Speichern von Metadaten und Datenherkunft
  • Überwachung, Warnungen, Protokollierung
  • Berechnung von QualitĂ€tsmetriken fĂŒr Datenprodukte
  • Pflege des Datenkatalogs
  • Standardisierung und Richtlinien, die FĂ€higkeit, die Einhaltung zu kontrollieren
  • Adressierung von Datenprodukten
  • CI / CD-Pipelines fĂŒr Datenprodukte

Bei der Erstellung einer zentralisierten Dateninfrastruktur muss sichergestellt werden, dass die Erstellung eines Datenprodukts auf einer solchen Infrastruktur so wenig Zeit wie möglich in Anspruch nimmt. Daher ist die maximale Automatisierung der SchlĂŒsselfunktionalitĂ€t sehr wichtig, z. B.: Das Herunterladen von Daten mithilfe einfacher Konfigurationen, die automatische Registrierung eines Datenprodukts im Datenverzeichnis usw. Durch die Verwendung der Cloud-Infrastruktur können die Betriebskosten gesenkt und der Zugriff auf die Dateninfrastruktur bei Bedarf beschleunigt werden.

Paradigmenwechsel in Richtung Data Mesh


Es war eine lange LektĂŒre! Lassen Sie uns kurz alles zusammenfassen, was oben geschrieben steht. Wir haben einige der Hauptmerkmale moderner Datenplattformen untersucht: zentralisierte, monolithische, komplexe Datenpipelines (mit Hunderten und Tausenden von Jobs, die eng miteinander verbunden sind), unterschiedliche, eng spezialisierte Teams. Nachdem wir ĂŒber einen neuen Data-Mesh-Ansatz gesprochen hatten, der verteilte Datenprodukte umfasst, die sich auf GeschĂ€ftsbereiche konzentrieren, die von funktionsĂŒbergreifenden Teams (mit EigentĂŒmern von Datenprodukten und Dateningenieuren) verwaltet werden und eine gemeinsame Dateninfrastruktur als Plattform fĂŒr das Hosting verwenden.

Das Data Mesh ist eine verteilte Architektur mit zentraler Verwaltung und entwickelten Standards, die die Datenintegrierbarkeit gewÀhrleisten, sowie einer zentralisierten Infrastruktur, die die Verwendung von Self-Service ermöglicht. Ich hoffe, der Leser ist sich ziemlich sicher, dass eine solche Architektur weit entfernt von einer lose gekoppelten Speicherung unzugÀnglicher Daten ist, die unabhÀngig voneinander in verschiedenen Abteilungen entwickelt wurden.

Bild
Abbildung 12: Datennetzarchitektur ab 10.000 Metern

Sie fragen sich vielleicht: Wie passt Data Lake oder das Data Warehouse in diese Architektur? Sie sind einfach separate Knoten (DomĂ€nen) in dieser verteilten Architektur. Es besteht eine hohe Wahrscheinlichkeit, dass wir in einer solchen Architektur Data Lake nicht mehr benötigen. Schließlich haben wir Zugriff auf die Recherche der Originaldaten verschiedener GeschĂ€ftsbereiche, die in Form von Datenprodukten erstellt wurden.

Dementsprechend ist Data Lake nicht mehr das zentrale Element der gesamten Architektur. Wir werden jedoch weiterhin die Technologien und Tools verwenden, die zum Aufbau von Data Lake verwendet werden, entweder um eine gemeinsame Dateninfrastruktur zu erstellen oder um unsere Datenprodukte intern zu implementieren.

Dies bringt uns tatsĂ€chlich dorthin zurĂŒck, wo alles begann. James Dickson2010 beabsichtigte er, Data Lake fĂŒr eine GeschĂ€ftsdomĂ€ne zu verwenden, und mehrere DatendomĂ€nen wĂŒrden Water Garden bilden.

Der Hauptparadigmenwechsel besteht darin, das GeschĂ€ftsdomĂ€nen-Datenprodukt als Aufgabe erster PrioritĂ€t und Tools und Technologien als Aufgabe zweiter PrioritĂ€t (als Implementierungsdetail) zu betrachten. Dies dient dazu, das mentale Modell von einem zentralisierten Data Lake in ein Ökosystem von Datenprodukten umzuleiten, die sich nahtlos und effizient miteinander integrieren.

Einige Worte zur Berichterstellung und Visualisierung (mithilfe von BI-Tools usw.). FĂŒr sie gilt das gleiche Prinzip: In dieser Architektur sind sie separate Knoten. Jene. Sie sind unabhĂ€ngige Datenprodukte innerhalb einer GeschĂ€ftsdomĂ€ne, die sich hauptsĂ€chlich auf den Verbraucher und nicht auf die Datenquelle konzentrieren.

Ich gebe zu, dass die Skalierung dieser Prinzipien in großen Organisationen noch einen langen Weg vor sich hat, obwohl ich die erfolgreiche Anwendung der Data Mesh-Prinzipien durch meine Kunden sehe. Aber Technologie ist hier offensichtlich keine EinschrĂ€nkung. Alle Tools, die wir heute verwenden, können gleichermaßen fĂŒr die Verteilung und den Besitz von Datenprodukten durch verschiedene Teams verwendet werden. Insbesondere der Übergang zur Standardisierung von Paket- und Stream-DatenverarbeitungsauftrĂ€gen sowie die Verwendung von Tools wie Apache Beam oder Google Cloud DataFlow erleichtern die Verarbeitung einer Vielzahl von DatensĂ€tzen mit eindeutigen Adressen.

Datenkatalogplattformen wie Google Cloud Data Catalog, bieten einfache Erkennung, Zugriffskontrolle und zentralisierte Verwaltung von DatensĂ€tzen verteilter GeschĂ€ftsdomĂ€nen. Eine große Anzahl von Cloud-Plattformen ermöglicht es GeschĂ€ftsdomĂ€nen, sich fĂŒr die gezielte Speicherung ihrer Datenprodukte zu entscheiden.

Die Notwendigkeit eines Paradigmenwechsels liegt auf der Hand. HierfĂŒr stehen alle notwendigen Technologien und Werkzeuge zur VerfĂŒgung. FĂŒhrungskrĂ€fte und Datenverarbeitungsfachleute mĂŒssen anerkennen, dass das aktuelle Big-Data-Paradigma und der Ansatz mit einer einzigen Big-Data-Lake-Plattform nur die Fehler der Vergangenheit mit neuen Cloud-Technologien und -Tools wiederholen werden.

Wechseln wir von einer zentralisierten monolithischen Datenplattform zu einem Ökosystem von Datenprodukten.

Bild

Links zu PrimÀrquellen und zusÀtzlichen Materialien zum Thema



All Articles