Come i contratti commerciali tradizionali, i contratti di dati includono termini e condizioni che regolano ciò che viene consegnato da una parte all'altra. In un contratto di dati, ciò può includere componenti quali regole di qualità dei dati, definizioni di schema, accordi sul livello di servizio, informazioni sul produttore dei dati e informazioni sul server.
Tuttavia, la vera differenza dei contratti di dati è che sono scritti nel codice; pertanto, gli accordi sono applicabili attraverso l'automazione piuttosto che i processi manuali.
L'impatto dei contratti di dati nell'ingegneria dei dati è stato paragonato all'impatto delle application programming interface (API) sullo sviluppo software. Le API definiscono regole che permettono alle applicazioni software di comunicare tra loro, mentre i contratti di dati definiscono regole che consentono ai consumatori di integrare e utilizzare con successo dati provenienti da varie fonti.
E, così come alle API si riconosce di aver migliorato la produttività e accelerato l'innovazione nello sviluppo software, l'implementazione efficace dei contratti di dati può portare a una serie di vantaggi per le imprese e gli utenti dei dati.
Il più importante di questi è la prevenzione dei guasti nelle pipeline di dati: senza contratti di dati, le modifiche a monte nella produzione dei dati possono comportare conseguenze critiche per gli utenti a valle. I contratti di dati possono garantire che tali modifiche sostanziali vengano identificate e affrontate prima che abbiano un impatto sui consumatori di dati.
Tra gli altri vantaggi dei contratti di dati si annoverano il miglioramento della qualità dei dati, della governance dei dati e della scalabilità. I contratti di dati forniscono anche un supporto fondamentale ai prodotti di dati e alle architetture di data mesh dati che permettono agli utenti business di trovare e sbloccare valore dai dati in tutta l'organizzazione.
Esistono diversi strumenti e piattaforme che aiutano le aziende a definire e far rispettare i contratti di dati, inclusi strumenti per la qualità dei dati e piattaforme di governance dei dati.
Le pipeline di dati fragili e interrotte sono la rovina di molti data engineer. Uno studio ha rilevato che più della metà degli ingegneri riscontra guasti alle pipeline nei propri sistemi di dati almeno una volta al mese, se non di più.1
Troppo spesso, come ha notato un data architect, le pipeline sono "tenute insieme con nastro adesivo e disperazione". Quando falliscono, possono compromettere il processo decisionale e le iniziative di intelligenza artificiale (AI) in modo disastroso.
I contratti di dati possono aiutare a prevenire tali conseguenze prendendo di mira una fonte frequente di guasti delle pipeline: il disallineamento tra produttori e consumatori di dati. Il disallineamento si verifica quando i nuovi dati forniti dai produttori di dati non soddisfano le aspettative dei consumatori, che potrebbero affidarsi a tipi di dati, schemi e altri vincoli specifici per adattarsi ai loro casi d'uso.
Comprensibilmente, i consumatori finali possono "nutrire dubbi sulla stabilità dei dati che trovano", secondo Jean-Georges Perrin, un IBM Champion a vita. "Per creare fiducia, il produttore o il proprietario dei dati deve dimostrare e garantire una promessa", ha scritto Perrin.
Una tale promessa (che si tratti di qualità dei dati, validazione, accesso o struttura) può essere garantita attraverso l'implementazione di contratti dati. Quando produttori e consumatori di dati si allineano e codificano i requisiti relativi ai dati, è possibile prevenire problemi di qualità dei dati prima che questi influiscano sui workflow successivi.
I contratti di dati stanno emergendo come particolarmente rilevanti per i workflow di AI, perché garantire i dati giusti per l'addestramento dei modelli e l'analytics dei dati è fondamentale per previsioni accurate.
"In questo modo si ottengono dati migliori nei propri sistemi, evitando che dati errati in ingresso si traducano in risultati errati in uscita", ha affermato Perrin.
Resta al passo con le tendenze più importanti e interessanti del settore relative ad AI, automazione, dati e oltre con la newsletter Think. Leggi l' Informativa sulla privacy IBM.
Poiché il disallineamento tra produttori e consumatori di dati determina in larga misura la necessità di contratti di dati, è utile dare un'occhiata più da vicino a questi due gruppi e ai loro ruoli all'interno degli ecosistemi di dati.
I consumatori di dati si affidano ai produttori affinché rendano i loro dati disponibili per un utilizzo successivo. Ma questa dipendenza non stabilisce di per sé una solida relazione tra consumatori e produttori. Questo perché i produttori tendono a memorizzare i dati nei formati più adatti alle loro applicazioni: le esigenze di gestione dei dati dei consumatori a valle non fanno intrinsecamente parte del loro obiettivo.
Di conseguenza, quando gli ingegneri del software aggiornano le applicazioni e il codice, potrebbero non considerare come tali aggiornamenti influenzino i dati che vengono infine consegnati ai consumatori di dati.
Quando tali cambiamenti sono inaspettati, anche cambiamenti relativamente piccoli come eliminare una singola colonna da una tabella di 1.000 colonne, può scoppiare il caos per i consumatori di dati. Questi cosiddetti cambiamenti radicali possono interrompere i flussi di dati e compromettere la compatibilità dei set di dati.
Di conseguenza, gli script falliscono, i dashboard diventano obsoleti o imprecisi e sia gli esseri umani che gli agenti AI vengono privati dei dati affidabili necessari per le decisioni e le operazioni chiave.
Stabilendo accordi definitivi tra produttori e consumatore di dati, i contratti di dati possono abbattere i silos che separano i due gruppi, prevenendo disallineamenti e supportando pipeline dati più funzionali.
I contratti di dati, come sottolineano i sostenitori, trasformano assunzioni implicite in garanzie esplicite: dettagliano esattamente cosa i produttori di dati devono fornire ai consumatori di dati e come ci si aspetta che ottengano tale consegna. Gli elementi chiave dei contratti di dati includono:
I fondamenti, noti anche come demografia, comprendono informazioni generali sul contratto. Ciò può includere identificativi univoci, la versione del contratto (ad esempio, 1.0 o 2.0), lo stato del contratto (come "attivo" o "ritirato"), lo scopo previsto per i dati e le limitazioni legali all'utilizzo dei dati.
Una definizione di schema descrive in dettaglio come sono organizzati i dati. Specifica oggetti (strutture dati come tabelle e documenti), proprietà degli oggetti (come le colonne in una tabella) e metadati per i tipi di dati inclusi, come timestamp e limiti di lunghezza delle stringhe. I registri di schemi, che sono archivi centralizzati per la gestione degli schemi, possono aiutare a supportare i contratti di dati.
I contratti di dati definiscono regole e parametri per garantire dati di alta qualità. Possono valutare molteplici metriche di qualità dei dati, come accuratezza, completezza, validità e conteggio dei valori nulli. Inoltre, regole personalizzate possono consentire controlli di qualità tramite strumenti di qualità dei dati.
I contratti di dati possono elencare le fonti di supporto, come canali Slack, canali Teams, chat Discord, liste di distribuzione e-mail e siti web, per i consumatori di dati che necessitano di assistenza in merito ai propri contratti.
La sezione prezzi di un contratto di dati elenca quanto viene addebitato a un consumatore di dati per un prodotto dati. Può includere la valuta utilizzata e l'unità di misura (come megabyte o gigabyte) che può essere utilizzata per calcolare il costo.
Nota in alcuni modelli di contratti di dati più vecchi come "stakeholder", la sezione team di un contratto di dati include informazioni sui membri del team che possiede i dati e sulla loro relazione con il contratto di dati.
La sezione ruoli di un contratto di dati elenca i ruoli che forniscono ai consumatori di dati diversi tipi di accesso (come l'accesso in lettura o in scrittura) a un set di dati.
I contratti di dati includono descrizioni di accordi di livello di servizio, che definiscono il livello di prestazione che il fornitore è atteso a raggiungere. Ad esempio, le sezioni SLA possono elencare garanzie su quando i dati sono disponibili e per quanto tempo vengono conservati.
Specificare il server dei dati, come Kafka, Microsoft SQL, Google BigQuery o IBM Db2, permette di renderli individuabili ai consumatori di dati, fornendo al contempo agli ingegneri della piattaforma le informazioni necessarie per automatizzare l'accesso. Questa sezione può includere anche informazioni su diversi ambienti, come sviluppo e produzione.
Oltre ai valori fondamentali dei contratti di dati, gli stakeholder possono aggiungere proprietà personalizzate ai contratti dati per soddisfare le loro esigenze specifiche. Le versioni recenti dei più diffusi modelli di contratti di dati includono anche la possibilità di documentare le relazioni tra proprietà, fare riferimento a contratti esterni e accedere a una libreria di regole di qualità dei dati predefinite per controlli di qualità coerenti.
I contratti di dati si distinguono nettamente dagli altri contratti in quanto non sono redatti in un linguaggio semplice. Piuttosto, sono solitamente scritti in YAML o JSON, linguaggi di serializzazione dati leggibili sia da uomini che da macchina. (Per gli utenti non familiari con i linguaggi di serializzazione della codifica, i contratti dati possono essere scritti in Excel e convertiti in file YAML tramite lo strumento open source Data Contract CLI.)
Il vantaggio di scrivere contratti di dati in un linguaggio di serializzazione è che consente l'automazione al posto di processi manuali laboriosi. I contratti dati leggibili dalle macchine possono essere integrati nelle piattaforme dati e negli strumenti di applicazione. Le organizzazioni possono distribuire queste soluzioni per testare se i set di dati rispettano le regole contrattuali, permettendo loro di risolvere problemi prima che causino guasti alle pipeline.
Molti contratti sui dati si basano sullo standard Open Data Contract Standard (ODCS).. Come suggerisce il nome, ODCS è un framework open source per standardizzare i contratti di dati. Lo standard è definito da Bitol, un progetto sandbox di Linux Foundation AI & Data sotto licenza Apache 2.0, ed è disponibile su GitHub.
I sostenitori dell'iniziativa affermano che essa facilita l'innovazione permettendo alle organizzazioni di implementare contratti di dati che supportano la loro architettura dati senza il rischio di un blocco da fornitore.
I contratti di dati possono risolvere molteplici punti critici nelle pipeline di dati, consentendo alle organizzazioni di sbloccare il valore dai propri asset. I vantaggi dei contratti di dati includono:
Come si dice, ciò che si misura si gestisce. Stabilire standard di accuratezza, validità, tempestività e altre metriche di qualità dei dati in un contratto di dati può migliorare la qualità dei dati consegnati riducendo la latenza.
I contratti di dati possono delineare le relazioni tra compiti interconnessi, o le dipendenze. Chiarendo tali dipendenze, i produttori di dati possono evitare di apportare modifiche sostanziali.
I contratti di dati sono soggetti a controllo di versione, il che significa che vengono create nuove versioni dei contratti per riflettere le modifiche importanti. Questo può aiutare i produttori a introdurre modifiche, come le modifiche allo schema, in modo "sicuro" che offra ai consumatori il tempo di adattarsi a tali modifiche, riducendo il rischio di interruzioni improvvise della pipeline.
Il processo di creazione di un contratto di dati facilita la comunicazione e l'accordo tra produttori di dati e consumatori. Una volta creato, il contratto funge da base per una collaborazione continua, poiché il controllo delle versioni soddisfa i dati e le esigenze in evoluzione.
I contratti di dati delineano le relazioni tra gli stakeholder e i dati, inclusi chi li possiede, quali ruoli possono accedervi e come gli utenti possono ottenere supporto. I contratti aiutano a chiarire chi è responsabile di cosa, garantendo una maggiore responsabilità.
I contratti di dati possono essere considerati strumenti di governance dei dati perché riflettono e fanno rispettare obiettivi critici di governance, come garantire la qualità dei dati, la sicurezza e la disponibilità dei dati durante tutto il ciclo di vita dei dati.
Supportando la governance dei dati e la collaborazione, i contratti di dati possono aiutare le Organizzazioni e le unità di business a condividere con successo i dati, anche quando i volumi di dati aumentano a ritmi senza precedenti.
I contratti di dati vengono spesso menzionati nelle discussioni relative ai prodotti dati e alle reti di dati. Questo per un buon motivo: i contratti di dati svolgono un ruolo chiave nel supportare entrambe queste tecnologie.
Iniziamo con i prodotti dati. Un prodotto di dati è un pacchetto riutilizzabile e autonomo che combina dati, metadati, semantica e modelli per supportare diversi casi d'uso aziendali. I contratti di dati possono fungere da "controllo di qualità" per i prodotti dati, garantendo che i dati in essi contenuti siano coerenti, affidabili e formattati correttamente.
Perrin descrive il rapporto tra prodotti dati e contratti di dati in termini familiari: "I contratti di dati e i prodotti dati sono come cugini inseparabili: lavorano sempre insieme, sono sempre allineati e si assicurano sempre che tutto funzioni senza intoppi."
L'importanza dei contratti di dati per i prodotti di dati li rende importanti anche per la funzionalità del data mesh. Un data mesh è un'architettura di dati decentralizzata che organizza i dati per dominio aziendale, come marketing, vendite o servizio clienti.
In un'architettura data mesh, i produttori di dati di dominio utilizzano prodotti dati che permettono agli utenti business di trovare e utilizzare dati provenienti da diverse parti di un'organizzazione. Pertanto, quando i contratti di dati garantiscono le prestazioni dei prodotti di dati, supportano il successo di un data mesh nel suo complesso.
Nel libro Data Contracts, gli esperti di dati Chad Sanderson, Mark Freeman e BE Schmidt delineano il seguente processo di funzionamento dei contratti di dati.3
Le organizzazioni possono scegliere tra una varietà di strumenti e piattaforme per creare e gestire contratti di dati. Ecco alcuni esempi:
Le esigenze specifiche di un'organizzazione e gli stack di dati esistenti possono aiutare a determinare quali soluzioni contrattuali o combinazioni di soluzioni sono le migliori per supportare i propri contratti di dati.
Crea e gestisci pipeline di dati intelligenti in streaming attraverso un'interfaccia grafica intuitiva, che facilita la perfetta integrazione dei dati in ambienti ibridi e multicloud.
Watsonx.data ti consente di scalare analytics e AI con tutti i tuoi dati, ovunque risiedano, attraverso uno storage dei dati aperto, ibrido e governato.
Sblocca il valore dei dati enterprise con IBM Consulting, creando un'organizzazione basata su insight in grado di generare vantaggi aziendali.
1 “Modern infrastructure helps data engineers deliver maximum value.” Fivetran. 11 marzo 2021.
2,3 Data Contracts: Developing Production-Grade Pipelines at Scale. O'Reilly Media. Novembre 2025.