Datenverträge
In einer Verbundarchitektur werden Zuständigkeiten zwischen Domänen verteilt, was es Ihnen erschweren kann, Abhängigkeiten zu überwachen und Erkenntnisse zur Datennutzung zu erhalten. Datenverträge können Ihnen helfen, Erkenntnisse zur Datennutzung zu erhalten, da sie Informationen darüber bereitstellen, wer jedes Datenprodukt besitzt. Datenverträge helfen Ihnen dabei, Standards festzulegen und Ihre Datenpipelines vertrauensvoll zu verwalten. Sie sind wesentlich für die robuste Datenverwaltung, die Ihnen Informationen zu Folgendem bietet:
Welche Datenprodukte verbraucht werden.
Welche Benutzer welche Datenprodukte nutzen.
Welche Zwecke Benutzer dazu veranlassen, bestimmte Datenprodukte zu nutzen.
Die Datenproduktverteilung und -nutzung besitzt zwei Dimensionen: technische Bedenken und geschäftliche Bedenken. Technische Bedenken umfassen die Datenpipelinebehandlung und die gegenseitigen Erwartungen an die Datenstabilität. Geschäftliche Bedenken umfassen Vereinbarungen über den Zweck der gemeinsamen Datennutzung, die Ziele für Nutzung, Datenschutz und Zweck definieren, einschließlich jeglicher Einschränkungen.
Die beiden Dimensionen umfassen verschiedene Rollen. Generell sollten Sie sich bei technischen Bedenken auf Anwendungsbesitzer oder technische Fachkräfte für Daten verlassen und bei geschäftlichen Bedenken auf Produktbesitzer oder Vertreter des Unternehmens.
Datenverträge
Datenverträge ähneln Dienstverträgen oder Datenlieferungsverträgen.
In einer größeren oder verteilten Architektur kann es schwierig sein, Änderungen zu überwachen. Sie können Ihre Aufsicht vereinfachen, indem Sie immer Versionsverwaltung und Verwaltung der Kompatibilität implementieren, wenn Sie über ein Datenprodukt verfügen, das beliebt und weit verbreitet ist.
Wenn Anwendungen gekoppelt sind, weist dies auf eine hohe gegenseitige Abhängigkeit zwischen den gekoppelten Anwendungen hin. Anwendungen, die auf Daten anderer Anwendungen zugreifen oder diese nutzen, leiden immer unter einer Kopplung. Beispielsweise wirken sich alle Änderungen an der Datenstruktur wahrscheinlich direkt auf andere Anwendungen aus, die auf diese Daten zugreifen oder diese nutzen. In Situationen, in denen Sie viele Anwendungen zusammengekoppelt haben, ist es üblich, dass Kaskadeneffekte auftreten, bei denen sich eine kleine Änderung an einer einzelnen Anwendung auf viele andere Anwendungen auswirkt. Aufgrund der erhöhten Wahrscheinlichkeit ungewollter Effekte nach sogar geringfügigen Änderungen vermeiden viele Architekten und Softwaretechniker das Erstellen gekoppelter Architekturen.
Ein Datenvertrag garantiert Schnittstellenkompatibilität und schließt die Vertragsbedingungen und eine Vereinbarung zum Servicelevel (SLA) ein. In den Vertragsbedingungen wird beschrieben, wie Daten verwendet werden können, z. B. die Einschränkung ihrer Verwendung auf nur Entwicklung, Tests oder Produktion. SLAs beschreiben die erforderliche Qualität der Datenlieferung und -schnittstelle. Qualitätsdetails, die Sie in einer SLA spezifizieren können, umfassen:
- Betriebszeit
- Fehlerraten
- Verfügbarkeit
- Eingestellte Unterstützung
- Eine Roadmap
- Versionsnummern
Sie können die Metadaten, die diese Details erfassen, in die Quellcodeverwaltung aufnehmen, wodurch die automatische Auslösung von Validierungen und Bereitstellungen ermöglicht wird. Weitere Informationen zur Quellcodeverwaltung finden Sie unter Quellcodeverwaltung in Azure Data Factory.
Die Datenverträge bieten Einblicke in die Kopplung und Abhängigkeiten zwischen den Domänen und Anwendungen. Ein Vertrag ermöglicht auch Contract Testing (Vertragstests), wodurch sichergestellt wird, dass alle Anwendungs- und Schnittstellenänderungen anhand der Datenanforderungen Ihrer Consumer validiert werden. Sie können erkennen, wann Ihre Datenflüsse anfällig für Änderungen an Upstreamdatenquellen werden, indem eine Schemaabweichung erkannt wird. Weitere Informationen finden Sie unter Schemaabweichungen im Zuordnungsdatenfluss.
Datenverträge sind häufig Teil von metadatengesteuerten Erfassungsframeworks. Sie können Datenverträge in Metadatendatensätzen innerhalb eines zentral verwalteten Metastores speichern. Von diesem zentralen Ort aus spielen Ihre Datenverträge eine wichtige Rolle in vielen Bereichen der Datenerfassung, einschließlich:
Pipelineausführung
Datenprodukterstellung
Datentypvalidierung
Schemas
Interoperabilitätsstandards
Protokollversionen
Standardregeln für fehlende Daten
Datenverträge umfassen große Mengen technischer Metadaten. Um Ihre Datenpipelines und Datenprodukte zu dokumentieren, müssen Sie über eine klare Beschreibung Ihrer Datenquellen, aller Transformationen, denen Ihre Daten unterzogen wurden, und der Art, wie Sie letztendlich die Daten liefern, verfügen.
In einer verteilten Architektur verteilen Sie ein Datenpipelineframework über verschiedene Domänen hinweg, und die Domänen halten eine gängige Arbeitsweise ein. Da die Domänen Daten selbst verarbeiten, verbleiben Kontrolle und Zuständigkeit bei ihnen, während das Framework und die Metadaten unter zentraler Governance bleiben.
Starten Sie beim Implementieren einer Verbundmethode klein. Beginnen Sie mit Grundlagen, z. B. die Speicherung von Metadaten für die Schemavalidierung, Unternehmensbezeichner und Verweise auf andere Datasets in Ihrem freigegebenen Metadatenrepository. Fügen Sie Unterstützung für Datenherkunft hinzu, die Ihnen bei der Visualisierung von Datenbewegungen helfen kann. Bootstrappen Sie Ihre Prozesse und verwenden Sie Bibliotheken wie Große Erwartungen (Great Expectations), um Kontrollen für die Validierung der technische Datenqualität zu implementieren.
Alle Ihre Steuerelemente sollten Teil Ihrer kontinuierlichen Integrationsverfahren sein. Erfassen Sie alle Laufzeitinformationen, einschließlich Metriken und Protokollierung, und machen Sie diese Informationen zum Bestandteil Ihrer Metadatengrundlage, um Erkenntnisse zur Stabilität der Datenpipeline zu erhalten. Dieses Setup stellt sicher, dass Sie eine Feedbackschleife zwischen Ihren Domänen und Ihrem zentralen Verwaltungscockpit haben.
Während Sie alle Datenbewegungen stabilisieren, erfassen Sie, welche Datenattribute (z. B. Tabellen und Spalten) von welchem Datenconsumer verwendet werden, und verwenden diese Informationen, um die Skalierung fortzusetzen. Sie können diese Informationen in Ihren zentral verwalteten Metastore einschließen. Datennutzungsinformationen ermöglichen es Ihnen, Breaking Changes zu erkennen und deren Auswirkungen auf Ihre Datenproducer und -consumer zu identifizieren. Wenn das Dataset eines Datenprodukts keine Consumer hat, können Sie für das Dataset Unterbrechungen verursachende Änderungen zulassen. Verwenden Sie die Quellcodeverwaltung (z. B. Git), um einen Handshake-Prozess zwischen Anbietern und Consumern Ihrer Daten zu ermöglichen.
Datenfreigabevereinbarungen
Datenfreigabevereinbarungen sind eine Erweiterung von Datenverträgen. Die Vereinbarungen beschreiben Datennutzung, Datenschutz und Zweck, einschließlich aller Einschränkungen. Datenfreigabevereinbarungen sind unabhängig und bieten Erkenntnisse zu den Daten, die für einen bestimmten Zweck verwendet werden. Sie funktionieren außerdem als Eingabe für Datensicherheitskontrollen. Sie können eine Datenfreigabevereinbarung verwenden, um anzugeben, welche Filter oder Sicherheitsmaßnahmen auf Ihre Daten angewendet werden müssen.
Datenfreigabevereinbarungen helfen auch, Fehlkommunikation hinsichtlich der Datennutzung zu verhindern. Domänenbesitzer sollten Datenfreigabe- und Datennutzungsprobleme besprechen, bevor überhaupt Daten geteilt werden. Ein gemeinsames Verständnis ist entscheidend für Ihre Fähigkeit, Daten und deren Nutzung zu regulieren und sicherzustellen, dass Sie Ihrer Organisation einen Mehrwert bieten können. Sobald alle Domänenbesitzer ein gemeinsames Verständnis erzielt haben, stellen Sie sicher, dass sie dieses in einer Datenfreigabevereinbarung dokumentieren. In dieser Vereinbarung können Sie auch Bereiche ansprechen wie:
Funktionale Qualität von Daten
Historisierung
Lebenszyklusverwaltung von Daten
Weitere Verteilung von Daten
Wenden Sie Klassifizierungen und Bedingungen wie Vertraulichkeitsbezeichnungen oder Filterbedingungen an, um Ihre Daten zu schützen.
Das Diagramm aus dem vorherigen Abschnitt zeigt bestimmte Elemente mit der Bezeichnung Datenprodukt-Sidecar. Ein Datenprodukt-Sidecar ist eine Komponente oder Ebene zum Einschleusen der Richtlinienausführung, z. B. Datenzugriffssteuerung oder Ausgabemethoden für den Datenverbrauch. Es handelt sich um eine Sicherheitsabstraktion, die Datenverträge verwendet, um die Erzwingung der Sicherheit über Ihre Domänendaten hinweg zu behandeln. Sie können ein Datenprodukt-Sidecar aus Ihrem Datenvertragsrepository als Zugriffssteuerungsliste (ACL) oder als serverlose Ansicht erstellen, oder Sie können eins mithilfe eines duplizierten Datasets erstellen, das Sie für einen bestimmten Consumer auswählen und filtern. Bei beiden Methoden ist aber das Ziel, Sicherheitsansichten von Ihren Datenverträgen auf voll automatisierte Weise abzuleiten.
Verbinden Sie Datenvertragsattribute und Ihre Dokumentation. Stellen Sie sicher, dass Sie semantischen Kontext und eine Beziehung zu Ihrem Glossar bereitstellen, damit Ihre Consumer verstehen können, wie Geschäftsanforderungen in eine tatsächliche Implementierung übersetzt werden. Wenn eine Beziehung mit Geschäftsbegriffen für Ihre Organisation wichtig ist, sollten Sie die Implementierung von Richtlinien erwägen, z. B. dass Datenverträge erst eingerichtet werden dürfen, nachdem alle Datenproduktattribute mit Geschäftsbegriffsentitäten verknüpft wurden. Sie könnten diese Art von Richtlinie auch auf kontextbezogene Änderungen wie Beziehungs- oder Definitionsanpassungen anwenden.
Verwenden von Datenverträgen
Beginnen Sie langsam, wenn Sie mit der Verwendung von Datenverträgen beginnen. Führen Sie nicht zu viele Änderungen gleichzeitig ein. Datenverträge erfordern einen kulturellen Wandel, und Ihre Benutzer benötigen Zeit, um sich mit ihnen vertraut zu machen und die Bedeutung des Datenbesitzes zu verstehen. Sie müssen auch den goldenen Mittelweg zwischen zu wenigen und zu vielen Metadatenattributen in Ihren Datenverträgen finden.
In den folgenden Schritten wird der Prozess der Implementierung von Datenverträgen für Ihre Organisation beschrieben.
Stellen Sie sicher, dass Ihre technischen Datenpipelines stabil sind. Anwendungsfälle können die Produktion nicht erreichen, wenn es in den Pipelines, die sie durchlaufen, zu unerwarteten Unterbrechungen kommt.
Richten Sie einfache und pragmatische Prozesse ein, wenn Sie mit der Verwendung von Freigabevereinbarungen beginnen. Sie können damit beginnen, dass Sie ein einfaches Formular oder eine einfache Vorlage in Microsoft Forms entwerfen. Schreiben Sie in klarer, präziser Sprache, die Leser leicht verstehen können. Der Fokus Ihrer ersten Phase liegt auf dem kulturellen Wandel und dem Sammeln von Anforderungen. Stellen Sie sicher, dass Sie Dinge nicht unnötig kompliziert machen. Akzeptieren Sie manuelle Prozesse, beschränken Sie ihre anfänglichen Metadatenanforderungen, und durchlaufen Sie sie, bis diese Anforderungen stabil sind.
Nachdem Sie Ihre ersten Prozesse stabil implementiert haben, beginnen Sie damit, Ihre manuellen Formulare durch eine webbasierte Anwendung, Datenbank und/oder Nachrichtenwarteschlange zu ersetzen. Ihr zentrales Datengovernanceteam sollte während dieser Phase weiterhin für die Aufsicht verantwortlich sein. Die Granularität des Datenzugriffs an diesem Punkt ist in der Regel grob und konzentriert sich auf Ordner oder Dateien. Verwenden Sie nach Möglichkeit REST-APIs, um Ihre Datenzugriffsrichtlinien oder ACLs automatisch bereitzustellen.
Überantworten Sie Datenbesitzern oder Data Stewards die Verantwortung für einen starken Workflow für die Genehmigungsverwaltung. Ihre zentrale Datengovernancerolle sollte Genehmigungen jetzt nur noch aus der zweiten Reihe heraus überwachen und alle Datenverträge regelmäßig überprüfen. An diesem Punkt sollten Sie über einen Datenkatalog wie Azure Purview verfügen, in dem alle Ihre für den Verbrauch bereiten Datenprodukte angezeigt werden. Verbessern Sie Ihre Daten- und Sicherheitserzwingungsfunktionen, indem Sie eine feiner aufgelöste Auswahl und Filterung zulassen, und erwägen Sie die Verwendung von Methoden wie dynamische Datenmaskierung, um eine Duplizierung Ihrer Daten zu verhindern.
In der letzten Phase der Implementierung Ihrer Datenverträge sollte alles Self-Service und vollautomatisiert sein. Automatisiertes maschinelles Lernen sollte Datengenehmigungen vorhersagen. Sicherheit
Am Ende Ihrer Journey wird alles Self-Service und vollautomatisiert sein. Dazu gehören automatisierte Sicherheitsdurchsetzung und maschinelles Lernen für die Prognose von Datengenehmigungen. Sichere Ansichten, z. B., werden nach der Genehmigung automatisch bereitgestellt.
Datenverträge sind eine relativ neue, aber wichtige Ergänzung zur Data Mesh-Architektur, die Transparenz für Datennutzung und Abhängigkeiten bietet. Konzentrieren Sie sich auf technische Stabilität und Standardisierung, wenn Sie mit der Verwendung von Datenverträgen beginnen, und nutzen Sie dann einen Prozess, der aus Erfahrungen lernt, während Sie die Vorgänge wiederholt durchlaufen. Bauen Sie Ihre Datengovernance langsam auf, und automatisieren Sie sie, damit Sie den Mehraufwand Ihrer Organisation nicht erhöhen.
Im Rahmen Ihrer Datenvertragsdokumentation benötigen Sie auch Vertragsbedingungen und Vereinbarungen zum Servicelevel (SLAs). Verwenden Sie SLAs, um Qualitätsanforderungen für Ihre Datenlieferung und -schnittstellen zu umreißen, einschließlich Uptime, Fehlerraten und Verfügbarkeit. SLAs können auch alle Anforderungen an Außerbetriebnahmen, Roadmaps und Versionsnummern enthalten, die Sie definieren müssen.