Contratti dati
Le responsabilità vengono distribuite tra domini in un'architettura federata, che può rendere difficile supervisionare le dipendenze e ottenere informazioni dettagliate sull'utilizzo dei dati. I contratti dati consentono di ottenere informazioni dettagliate sull'utilizzo dei dati perché forniscono informazioni sugli utenti proprietari di ogni prodotto dati. I contratti dati consentono di impostare standard e gestire in modo sicuro le pipeline di dati. Sono essenziali per una gestione affidabile dei dati, fornendo informazioni su:
- Quali prodotti dati vengono utilizzati.
- Quali utenti utilizzano i prodotti dati.
- Quale scopo porta gli utenti a consumare specifici prodotti di dati.
La distribuzione e l'utilizzo dei prodotti dati hanno due dimensioni: problemi tecnici e problemi aziendali. I problemi tecnici includono la gestione delle pipeline di dati e le aspettative di stabilità reciproca dei dati. I problemi aziendali includono contratti di scopo di condivisione dei dati, che definiscono obiettivi di utilizzo, privacy e scopo, incluse eventuali limitazioni.
Le due dimensioni comportano ruoli diversi. In genere, è consigliabile rivolgersi a proprietari di applicazioni o ingegneri dei dati per problemi tecnici e a proprietari di prodotti o rappresentanti aziendali per questioni aziendali.
Principi relativi ai contratti dati
I contratti dati sono simili ai contratti di servizio o ai contratti di consegna dei dati.
In un'architettura più grande o distribuita, può essere difficile supervisionare le modifiche. È possibile semplificare la supervisione implementando il controllo delle versioni e gestendo la compatibilità ogni volta che si dispone di un prodotto di dati diffuso e ampiamente usato.
Se le applicazioni sono associate, indica un livello elevato di interdipendenza tra le applicazioni associate. Le applicazioni che accedono o utilizzano i dati di altre applicazioni subiscono sempre un'accoppiamento. Qualsiasi modifica alla struttura dei dati, ad esempio, potrebbe influire direttamente su altre applicazioni che accedono o utilizzano tali dati. In situazioni in cui sono associate molte applicazioni, è comune riscontrare un effetto a catena in cui una piccola modifica a una singola applicazione influisce su molte altre applicazioni. A causa della maggiore probabilità di effetti imprevisti dopo anche piccole modifiche, molti architetti e ingegneri del software evitano di costruire architetture associate.
Un contratto dati garantisce la compatibilità dell'interfaccia e include le condizioni per il servizio e un contratto di servizio. Le condizioni per il servizio descrivono come usare i dati, ad esempio limitandone l'uso solo a sviluppo, test o produzione. I contratti di servizio descrivono la qualità necessaria del recapito e dell'interfaccia dei dati. I dettagli di qualità che è possibile specificare in un contratto di servizio includono:
- Tempo di attività
- Tassi di errore
- Disponibilità
- Deprecazione
- Una roadmap
- Numeri di versione
È possibile inserire i metadati che acquisiscono questi dettagli nel controllo del codice sorgente, che consente l'attivazione automatica delle convalide e delle distribuzioni. Per altre informazioni sul controllo del codice sorgente, vedere Controllo del codice sorgente in Azure Data Factory.
I contratti dati forniscono informazioni dettagliate sull'accoppiamento e sulle dipendenze tra domini e applicazioni. Un contratto consente anche il test del contratto, che garantisce che tutte le modifiche dell'applicazione e dell'interfaccia vengano convalidate in base ai requisiti dei dati dei consumer. È possibile stabilire quando i flussi di dati diventano vulnerabili alle modifiche all'origine dati upstream rilevando la deriva dello schema. Per altre informazioni, vedere Deriva dello schema nel flusso di dati per mapping.
I contratti dati fanno spesso parte di framework di inserimento basati sui metadati. È possibile archiviare i contratti dati nei record di metadati all'interno di un metastore gestito centralmente. Da quella posizione centrale, i contratti sui dati svolgono un ruolo importante in più aree di inserimento dati, tra cui:
- Esecuzione della pipeline
- Creazione di prodotti dati
- Convalida del tipo di dati
- Schemi
- Standard di interoperabilità
- Versioni del protocollo
- Regole predefinite per i dati mancanti
I contratti dati prevedono grandi quantità di metadati tecnici. Per documentare le pipeline di dati e i prodotti dati, è necessario avere una descrizione chiara delle origini dati, tutte le trasformazioni dei dati sono state sottoposte e come si recapitano i dati.
In un'architettura distribuita si distribuisce un framework della pipeline di dati in domini diversi e i domini sono conformi a un modo comune di lavorare. Poiché i domini elaborano i dati stessi, il controllo e la responsabilità rimangono con loro, mentre il framework e i metadati rimangono sotto la governance centrale.
Quando si implementa un metodo federato, iniziare di piccole dimensioni. Iniziare con le nozioni di base, ad esempio l'archiviazione dei metadati per la convalida dello schema, gli identificatori dell'organizzazione e i riferimenti ad altri set di dati nel repository di metadati condivisi. Aggiungere il supporto per la derivazione dei dati per visualizzare lo spostamento dei dati. Inizializzare i processi e implementare controlli per la convalida tecnica della qualità dei dati.
Tutti i controlli devono far parte delle procedure di integrazione continua. Acquisire tutte le informazioni di runtime, incluse le metriche e la registrazione, e rendere queste informazioni parte delle basi dei metadati per ottenere informazioni dettagliate sulla stabilità della pipeline di dati. Questa configurazione garantisce un ciclo di feedback tra i domini e il cockpit di gestione centrale.
Man mano che si stabilizza tutto lo spostamento dei dati, acquisire gli attributi di dati(ad esempio tabelle e colonne) usati dai consumer di dati e usare queste informazioni per continuare la scalabilità. È possibile includere queste informazioni nel metastore gestito centralmente. Le informazioni sull'utilizzo dei dati consentono di rilevare modifiche di rilievo e di identificarne gli effetti sui produttori di dati e sui consumer. Se un set di dati del prodotto non ha consumer, è possibile consentire l'esecuzione di modifiche che causano interruzioni. Usare il controllo del codice sorgente (ad esempio Git) per consentire un processo di handshake tra provider e consumer dei dati.
Contratti di condivisione dei dati
I contratti di condivisione dei dati sono un'estensione dei contratti dati. I contratti delineano l'utilizzo, la privacy e lo scopo dei dati, incluse eventuali limitazioni. I contratti di condivisione dei dati sono indipendenti dall'interfaccia e offrono informazioni dettagliate sui dati usati per uno scopo specifico. Funzionano anche come input per i controlli di sicurezza dei dati. È possibile usare un contratto di condivisione dei dati per definire quali filtri o protezioni di sicurezza devono essere applicati ai dati.
I contratti di condivisione dei dati consentono anche di evitare errori di comunicazione sull'utilizzo dei dati. I proprietari di dominio devono discutere dei problemi di condivisione dei dati e di utilizzo dei dati prima che i dati vengano condivisi. Avere una conoscenza comune è fondamentale per la possibilità di regolare i dati e il relativo utilizzo e assicurarsi di poter offrire valore all'organizzazione. Dopo che tutti i proprietari di dominio raggiungono una comprensione collaborativa, assicuratevi di documentarla in un contratto di condivisione dei dati. In questo contratto è anche possibile gestire aree come:
- Qualità dei dati funzionali
- Istorizzazione
- Gestione del ciclo di vita dei dati
- Ulteriore distribuzione dei dati
Applicare classificazioni e condizioni come etichette di riservatezza o condizioni di filtro per proteggere i dati.
Il diagramma della sezione precedente mostra alcuni elementi etichettati sul sidecar prodotto dati. Un sidecar del prodotto dati è un componente o un livello per l'inserimento dell'esecuzione dei criteri, ad esempio i controlli di accesso ai dati o i metodi di output del consumo di dati. Si tratta di un'astrazione della sicurezza che usa i contratti dati per gestire l'imposizione della sicurezza sui dati di dominio. È possibile creare un sidecar prodotto dati dal repository del contratto dati come elenco di controllo di accesso (ACL) o visualizzazione serverless oppure crearne uno usando un set di dati duplicato selezionato e filtrato per un consumer specifico. In entrambi i casi, l'obiettivo è derivare visualizzazioni di sicurezza dai contratti dati in modo completamente automatizzato.
Connettere gli attributi del contratto dati e la documentazione. Assicurarsi di fornire un contesto semantico e una relazione con il glossario in modo che i consumer possano comprendere come i requisiti aziendali si traducono in un'implementazione effettiva. Se una relazione con i termini aziendali è importante per l'organizzazione, prendere in considerazione l'implementazione di criteri come la possibilità di stabilire solo i contratti dati dopo che tutti gli attributi del prodotto dati sono collegati alle entità dei termini aziendali. È anche possibile applicare questo tipo di criteri alle modifiche contestuali, ad esempio le rettifiche di relazione o definizione.
Usare i contratti dati
Iniziare a rallentare quando si inizia a usare i contratti dati. Non introdurre troppi cambiamenti contemporaneamente; i contratti dati richiedono un cambiamento culturale e gli utenti hanno bisogno di tempo per acquisire familiarità con loro e comprendere l'importanza della proprietà dei dati. È anche necessario trovare il punto di partenza tra troppi attributi di metadati e troppi attributi di metadati nei contratti dati.
I passaggi seguenti illustrano il processo di implementazione dei contratti dati per l'organizzazione:
- Assicurarsi che le pipeline di dati tecnici siano stabili. I casi d'uso non possono raggiungere la produzione se le pipeline in viaggio si verificano interruzioni impreviste.
- Mettere in atto processi semplici e pragmatici quando si inizia a usare i contratti di condivisione. È possibile iniziare progettando un modulo o un modello semplice in Microsoft Forms. Scrivere in un linguaggio chiaro e conciso che i lettori possono facilmente comprendere. L'obiettivo di questa prima fase è un cambiamento culturale e la raccolta dei requisiti. Assicurati di non sovraplicare le cose; accettare processi manuali, limitare i requisiti iniziali dei metadati e scorrere fino a quando tali requisiti non sono stabili.
- Dopo aver eseguito i primi processi, inizia a sostituire i moduli manuali con un'applicazione basata sul Web, un database e/o una coda di messaggi. Il team di governance dei dati centrale deve comunque essere responsabile della supervisione durante questa fase. La granularità dell'accesso ai dati a questo punto è generalmente grossolana, focalizzandosi su cartelle o file. Quando possibile, usare le API REST per effettuare automaticamente il provisioning dei criteri di accesso ai dati o degli ACL.
- Inserire proprietari di dati o amministratori dei dati responsabili di un flusso di lavoro sicuro per la gestione delle approvazioni. Il ruolo centrale di governance dei dati dovrebbe ora supervisionare le approvazioni solo in modo indiretto ed esaminare regolarmente tutti i contratti relativi ai dati. A questo punto, è necessario disporre di un catalogo dati come Microsoft Purview in esecuzione che mostra tutti i prodotti dati pronti per l'utilizzo. Migliorare la funzionalità di imposizione dei dati e della sicurezza consentendo selezioni e filtri con granularità fine e prendere in considerazione l'uso di tecniche come la maschera dati dinamica per impedire che i dati vengano duplicati.
- Nella fase finale del percorso di implementazione del contratto dati, tutto deve essere self-service e completamente automatizzato. Machine Learning automatizzato deve prevedere le approvazioni dei dati. Le visualizzazioni protette, ad esempio, vengono distribuite automaticamente dopo l'approvazione.
I contratti dati sono un'aggiunta relativamente nuova ma importante all'architettura della mesh di dati, offrendo trasparenza per l'utilizzo e le dipendenze dei dati. Concentrarsi sulla stabilità tecnica e la standardizzazione quando si inizia a usare i contratti dati, quindi usare un processo appreso durante l'iterazione. Creare e automatizzare lentamente la governance dei dati in modo da non aumentare il sovraccarico dell'organizzazione.
Come parte della documentazione del contratto dati, sono necessarie anche le condizioni di servizio e gli accordi sul livello di servizio (SLA). Usare gli SLA per delineare i requisiti di qualità per la consegna dei dati e le loro interfacce, inclusi il tempo di operatività, le percentuali di errore e la disponibilità. I contratti di servizio possono includere anche eventuali requisiti di deprecazione, roadmap e numero di versione che è necessario definire.