Datakontrakt
Ansvarsområden fördelas mellan domäner i en federerad arkitektur, vilket kan göra det svårt för dig att övervaka beroenden och få insikter om dataanvändning. Datakontrakt kan hjälpa dig att få insikter om dataanvändning eftersom de ger information om vem som äger varje dataprodukt. Med datakontrakt kan du ange standarder och hantera dina datapipelines på ett säkert sätt. De är viktiga för robust datahantering och ger dig information om:
Vilka dataprodukter som används.
Vilka användare använder vilka dataprodukter.
Vilka ändamål leder användarna till att använda specifika dataprodukter.
Distribution och användning av dataprodukter har två dimensioner: tekniska problem och affärsproblem. Tekniska problem omfattar hantering av datapipelines och förväntningar på ömsesidig datastabilitet. Affärsproblem omfattar avtal om datadelningsändamål, som definierar användnings-, sekretess- och syftesmål, inklusive eventuella begränsningar.
De två dimensionerna omfattar olika roller. I allmänhet bör du förlita dig på programägare eller datatekniker för tekniska problem och förlita dig på produktägare eller företagsrepresentanter för affärsproblem.
Datakontrakt liknar tjänstkontrakt eller dataleveranskontrakt.
I en större eller distribuerad arkitektur kan det vara svårt för dig att övervaka ändringar. Du kan förenkla din tillsyn genom att implementera versionshantering och hantera kompatibilitet när du har en dataprodukt som är populär och används ofta.
Om programmen är kopplade indikerar det att det finns en hög grad av ömsesidigt beroende mellan de kopplade programmen. Program som kommer åt eller använder data från andra program drabbas alltid när de kopplas ihop. Ändringar i datastrukturen kommer till exempel sannolikt att direkt påverka andra program som kommer åt eller använder dessa data. I situationer där du har många program kopplade till varandra är det vanligt att stöta på en sammanhängande effekt där en liten ändring av ett enda program påverkar många andra program. På grund av den ökade sannolikheten för oavsiktliga effekter efter även mindre ändringar undviker många arkitekter och programvarutekniker att skapa kopplade arkitekturer.
Ett datakontrakt garanterar gränssnittskompatibilitet och innehåller tjänstvillkor och ett serviceavtal (SLA). Användarvillkor beskriver hur data kan användas, till exempel att begränsa användningen till endast utveckling, testning eller produktion. Serviceavtal beskriver den kvalitet som krävs för dataleverans och gränssnitt. Kvalitetsinformation som du kan ange i ett serviceavtal är:
- Drifttid
- Felfrekvenser
- Tillgänglighet
- Inaktualitet
- En översikt
- Versionsnummer
Du kan placera metadata som samlar in den här informationen under källkontroll, vilket möjliggör automatisk utlösande av valideringar och distributioner. Mer information om källkontroll finns i Källkontroll i Azure Data Factory.
Datakontrakt ger insikter om kopplingar och beroenden mellan domäner och program. Ett kontrakt möjliggör även kontraktstestning, vilket säkerställer att alla program- och gränssnittsändringar verifieras mot dina konsumenters datakrav. Du kan se när dina dataflöden blir sårbara för överordnade datakällans ändringar genom att identifiera schemaavvikelse. Mer information finns i Schemaavvikelse i mappning av dataflöde.
Datakontrakt är ofta en del av ramverk för metadatadriven inmatning. Du kan lagra datakontrakt i metadataposter i ett centralt hanterat metaarkiv. Från den centrala platsen spelar dina datakontrakt en viktig roll inom data på flera områden av datainmatning, inklusive:
Pipelinekörning
Skapa dataprodukt
Validering av datatyp
Scheman
Interoperabilitetsstandarder
Protokollversioner
Standardregler för saknade data
Datakontrakt omfattar stora mängder tekniska metadata. Om du vill dokumentera dina datapipelines och dataprodukter måste du ha en tydlig beskrivning av dina datakällor, alla omvandlingar som dina data har genomgått och hur du slutligen levererar data.
I en distribuerad arkitektur distribuerar du ett ramverk för datapipeline mellan olika domäner och domänerna överensstämmer med ett vanligt sätt att arbeta. Eftersom domänerna själva bearbetar data finns kontroll och ansvar kvar hos dem, medan ramverket och metadata förblir under central styrning.
När du implementerar en federerad metod börjar du litet. Börja med grunderna, till exempel metadatalagring för schemavalidering, företagsidentifierare och referenser till andra datauppsättningar i lagringsplatsen för delade metadata. Lägg till stöd för data härkomst som hjälper dig att visualisera dataflytt. Bootstrap dina processer och använda bibliotek som Great Expectations för att implementera kontroller för validering av teknisk datakvalitet.
Alla dina kontroller bör ingå i dina procedurer för kontinuerlig integrering. Samla in all körningsinformation, inklusive mått och loggning, och gör informationen till en del av metadatagrunden för att få insikter om datapipelines stabilitet. Den här konfigurationen säkerställer att du har en feedbackloop mellan dina domäner och din centrala hanterings cockpit.
När du stabiliserar all dataförflyttning samlar du in vilka dataattribut (t.ex. tabeller och kolumner) som används av vilka datakonsumenter och använder den här informationen för att fortsätta skalningen. Du kan inkludera den här informationen i ditt centralt hanterade metaarkiv. Med information om dataanvändning kan du identifiera icke-bakåtkompatibla ändringar och identifiera deras effekter på dina dataproducenter och konsumenter. Om en dataproduktdatauppsättning inte har några konsumenter kan du låta den uppleva störande ändringar. Använd källkontroll (till exempel Git) för att tillåta en handskakningsprocess mellan leverantörer och konsumenter av dina data.
Datadelningsavtal är en förlängning av datakontrakt. Avtalen beskriver dataanvändning, sekretess och syfte, inklusive eventuella begränsningar. Datadelningsavtal är gränssnittsoberoende och ger insikter om vilka data som används för ett visst ändamål. De fungerar också som indata för datasäkerhetskontroller. Du kan använda ett datadelningsavtal för att beskriva vilka filter eller säkerhetsskydd som måste tillämpas på dina data.
Datadelningsavtal bidrar också till att förhindra felkommunikation över dataanvändning. Domänägare bör diskutera problem med datadelning och dataanvändning innan data delas. Att ha en gemensam förståelse är avgörande för din förmåga att reglera data och dess användning och se till att du kan leverera värde till din organisation. När alla domänägare har en samarbetsförståelse ska du se till att de dokumenterar det i ett datadelningsavtal. I det här avtalet kan du även ta upp områden som:
Funktionell datakvalitet
Historisering
Hantering av datalivscykel
Ytterligare distribution av data
Använd klassificeringar och villkor som känslighetsetiketter eller filtreringsvillkor för att skydda dina data.
Diagrammet i föregående avsnitt visar vissa element märkta med sidovagn för dataprodukt. En dataprodukts sidovagn är en komponent eller ett lager för att mata in principkörning, till exempel dataåtkomstkontroller eller utdatametoder för dataförbrukning. Det är en säkerhetsabstraktion som använder datakontrakt för att hantera tvingande säkerhet för dina domändata. Du kan skapa en dataprodukts sidovagn från lagringsplatsen för datakontraktet som en åtkomstkontrollista (ACL) eller serverlös vy, eller så kan du skapa en med en duplicerad datauppsättning som du väljer och filtrerar för en specifik konsument. Hur som helst är målet att härleda säkerhetsvyer från dina datakontrakt på ett helt automatiserat sätt.
Anslut attribut för datakontrakt och din dokumentation. Se till att du tillhandahåller semantisk kontext och en relation till ordlistan så att dina konsumenter kan förstå hur affärskrav översätts till en faktisk implementering. Om en relation med affärsvillkor är viktig för din organisation kan du överväga att implementera principer som att endast tillåta att datakontrakt upprättas när alla dataproduktattribut är länkade till affärstermentiteter. Du kan också använda den här typen av princip för kontextuella ändringar som relations- eller definitionsjusteringar.
Starta långsamt när du börjar använda datakontrakt. Introducera inte för många ändringar samtidigt. datakontrakt kräver ett kulturellt skifte och användarna behöver tid för att bekanta sig med dem och förstå vikten av dataägarskap. Du måste också hitta den söta punkten mellan för få och för många metadataattribut i dina datakontrakt.
I följande steg beskrivs processen för att implementera datakontrakt för din organisation.
Se till att dina tekniska datapipelines är stabila. Användningsfall kan inte nå produktion om pipelines som de färdas genom upplever oväntade störningar.
Sätt enkla och pragmatiska processer på plats när du börjar använda delningsavtal. Du kan börja med att utforma ett enkelt formulär eller en mall i Microsoft Forms. Skriv på ett tydligt, koncist språk som läsarna enkelt kan förstå. Fokus för den här första fasen är ett kulturellt skifte och krav på insamling. Se till att du inte överkomplicerar saker. acceptera manuella processer, begränsa dina ursprungliga metadatakrav och iterera tills dessa krav är stabila.
När du har de första processerna på plats börjar du ersätta dina manuella formulär med ett webbaserat program, en databas och/eller en meddelandekö. Ditt centrala datastyrningsteam bör fortfarande ansvara för tillsyn under den här fasen. Dataåtkomstens kornighet i det här läget är vanligtvis kursberoende och fokuserar på mappar eller filer. När det är möjligt använder du REST-API:er för att automatiskt etablera dina dataåtkomstprinciper eller ACL:er.
Ge dataägare eller dataförvaltare ansvaret för ett starkt arbetsflöde för godkännandehantering. Din centrala datastyrningsroll bör nu endast övervaka godkännanden från en baksätesroll och granska alla datakontrakt regelbundet. Nu bör du ha en datakatalog som Azure Purview igång som visar alla dina dataprodukter som är redo för förbrukning. Förbättra funktionen för data- och säkerhetstillämpning genom att tillåta detaljerade val och filtrering, och överväg att använda tekniker som dynamisk datamaskering för att förhindra att dina data dupliceras.
I det sista steget i implementeringsresan för datakontraktet bör allt vara självbetjäning och helt automatiserat. Automatiserad maskininlärning bör förutsäga datagodkännanden. Säkerhet
I slutet av din resa kommer allt att vara självbetjäning och helt automatiserat. Detta omfattar automatiserad säkerhet och maskininlärning för att förutsäga datagodkännanden. Säkra vyer distribueras till exempel automatiskt efter godkännande.
Datakontrakt är ett relativt nytt men ändå viktigt tillägg till datanätsarkitekturen, vilket ger transparens för dataanvändning och beroenden. Fokusera på teknisk stabilitet och standardisering när du först börjar använda datakontrakt och använd sedan en process som du lärt dig när du itererar. Bygg långsamt upp och automatisera datastyrningen så att du inte ökar organisationens omkostnader.
Som en del av dokumentationen för ditt datakontrakt behöver du även service- och serviceavtal (SLA). Använd serviceavtal för att beskriva kvalitetskrav för din dataleverans och dina gränssnitt, inklusive för drifttid, felfrekvens och tillgänglighet. Serviceavtal kan också innehålla krav på utfasning, översikt och versionsnummer som du behöver definiera.