Condividi tramite


Contratti dati

Le responsabilità vengono distribuite tra domini in un'architettura federata, che possono 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 su chi possiede 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.

  • Utenti che utilizzano i prodotti di dati.

  • Quali scopi consentono agli utenti di utilizzare prodotti dati specifici.

La distribuzione e l'utilizzo dei prodotti dati hanno due dimensioni: problemi tecnici e problematiche aziendali. I problemi tecnici includono la gestione della pipeline di dati e le aspettative di stabilità reciproca dei dati. I problemi aziendali includono i contratti di scopo di condivisione dei dati, che definiscono gli obiettivi di utilizzo, privacy e scopo, incluse eventuali limitazioni.

Le due dimensioni prevedono ruoli diversi. In genere, è consigliabile affidarsi ai proprietari di applicazioni o ai data engineer per problemi tecnici e affidarsi ai proprietari di prodotti o ai rappresentanti aziendali per le problematiche aziendali.

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 dati diffuso e ampiamente usato.

Se le applicazioni sono associate, ciò indica un livello elevato di interdipendenza tra le applicazioni associate. Le applicazioni che accedono o utilizzano dati da altre applicazioni soffrono sempre quando sono associate. Qualsiasi modifica alla struttura dei dati, ad esempio, è probabile che influisca direttamente su altre applicazioni che accedono o utilizzano tali dati. Nelle 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 modifiche anche minori, 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 illustrano come usare i dati, ad esempio limitandone l'uso solo a sviluppo, test o produzione. I contratti di servizio descrivono la qualità necessaria per la distribuzione e l'interfaccia dei dati. I dettagli di qualità che è possibile specificare in un contratto di servizio includono:

  • Uptime
  • 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 di convalide e 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 dei framework di inserimento basati sui metadati. È possibile archiviare i contratti dati nei record di metadati all'interno di un metastore gestito centralmente. Da tale posizione centrale i contratti dati svolgono un ruolo importante nei dati 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.

Diagramma che mostra i contratti dati.

In un'architettura distribuita si distribuisce un framework della pipeline di dati tra 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 essi, 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. Eseguire il bootstrap dei processi e usare librerie come Grandi aspettative per 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 renderle parte delle informazioni di base 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 il ridimensionamento. È 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 producer di dati e sui consumer. Se un set di dati del prodotto non ha consumer, è possibile consentire l'esperienza 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 i filtri o le protezioni di sicurezza da applicare 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 capacità 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, assicurarsi di documentarli 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 di sicurezza che usa 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 gli utenti possano comprendere in che modo 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 ad esempio consentire la creazione di contratti dati solo dopo che tutti gli attributi del prodotto dati sono collegati alle entità dei termini aziendali. È anche possibile applicare questo tipo di criterio a modifiche contestuali come le regolazioni di relazione o definizione.

Usare contratti dati

Iniziare lentamente quando si inizia a usare i contratti dati. Non introdurre troppe modifiche 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 più debole tra troppi attributi di metadati nei contratti dati.

I passaggi seguenti illustrano il processo di implementazione dei contratti dati per l'organizzazione.

  1. Assicurarsi che le pipeline di dati tecnici siano stabili. I casi d'uso non possono raggiungere la produzione se le pipeline che passano attraverso interruzioni impreviste.

  2. 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. Assicurarsi di non sovraplicare le cose; accettare processi manuali, limitare i requisiti di metadati iniziali e eseguire l'iterazione fino a quando tali requisiti non sono stabili.

  3. Dopo aver eseguito i primi processi in modo stabile, iniziare a sostituire i moduli manuali con un'applicazione, un database e/o una coda di messaggi basata sul Web. Il team di governance centrale dei dati deve comunque essere responsabile della supervisione durante questa fase. La granularità dell'accesso ai dati a questo punto è in genere granulare, concentrandosi su cartelle o file. Quando possibile, usare le API REST per effettuare automaticamente il provisioning dei criteri di accesso ai dati o agli elenchi di controllo di accesso.

  4. Inserire i proprietari di dati o gli amministratori dei dati incaricati di un flusso di lavoro sicuro per la gestione delle approvazioni. Il ruolo di governance centrale dei dati deve ora controllare le approvazioni solo da un ruolo backseat e esaminare regolarmente tutti i contratti dati. A questo punto, è necessario disporre di un catalogo dati come Azure Purview up e running che mostra tutti i prodotti dati pronti per l'utilizzo. Migliorare le funzionalità di applicazione dei dati e della sicurezza consentendo selezioni e filtri con granularità fine e valutare l'uso di tecniche come la maschera dinamica dei dati per impedire che i dati vengano duplicati.

  5. Nella fase finale del percorso di implementazione del contratto di dati, tutto deve essere self-service e completamente automatizzato. Machine Learning automatizzato deve prevedere le approvazioni dei dati. Sicurezza

  6. Alla fine del tuo viaggio, tutto sarà self-service e completamente automatizzato. Ciò include l'applicazione automatica della sicurezza e l'apprendimento automatico per prevedere le approvazioni dei dati. Le visualizzazioni sicure, ad esempio, vengono distribuite automaticamente dopo l'approvazione.

I contratti dati sono un'aggiunta relativamente nuova e importante all'architettura della mesh dei dati, fornendo 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 alle lezioni durante l'iterazione. Creare lentamente e automatizzare la governance dei dati in modo da non aumentare il sovraccarico dell'organizzazione.

Per altre informazioni sull'osservabilità e sui contratti di condivisione dei dati, vedere Guida al monitoraggio del cloud: Osservabilità.

Come parte della documentazione del contratto dati, sono necessarie anche condizioni per i contratti a livello di servizio e di servizio. Usare i contratti di servizio per definire i requisiti di qualità per il recapito e le interfacce dei dati, inclusi i tempi di attività, le tariffe degli errori e la disponibilità. I contratti di servizio possono includere anche eventuali requisiti di deprecazione, roadmap e numero di versione che è necessario definire.

Passaggi successivi