Tecniche popolari di convalida dei dati per l'analisi e perché ne hai bisogno
Pubblicato: 2022-12-19Nota del redattore: questo articolo è stato originariamente pubblicato sul blog Iterativamente il 14 dicembre 2020.
Alla fine della giornata, la tua analisi dei dati deve essere testata come qualsiasi altro codice. Se non convalidi questo codice e i dati che genera, può essere costoso (come $ 9,7 milioni di dollari all'anno, secondo Gartner).
Per evitare questo destino, le aziende ei loro ingegneri possono sfruttare una serie di tecniche di convalida dei dati proattive e reattive. Consigliamo vivamente il primo, come spiegheremo di seguito. Un approccio proattivo alla convalida dei dati aiuterà le aziende a garantire che i dati in loro possesso siano puliti e pronti per essere utilizzati.
Tecniche di convalida dei dati reattive e proattive: risolvi i problemi relativi ai dati prima che diventino un problema
"Un'oncia di prevenzione vale una libbra di cura." È un vecchio detto che è vero in quasi tutte le situazioni, comprese le tecniche di convalida dei dati per l'analisi. Un altro modo per dirlo è che è meglio essere proattivi che reattivi.
Lo scopo di qualsiasi convalida dei dati è identificare dove i dati potrebbero essere imprecisi, incoerenti, incompleti o addirittura mancanti.
Per definizione, la convalida reattiva dei dati avviene dopo il fatto e utilizza il rilevamento delle anomalie per identificare eventuali problemi che i dati potrebbero avere e per alleviare i sintomi di dati errati. Sebbene questi metodi siano meglio di niente, in primo luogo non risolvono i problemi fondamentali che causano dati errati.
Riteniamo invece che i team dovrebbero provare ad adottare tecniche proattive di convalida dei dati per le loro analisi, come la sicurezza dei tipi e la schematizzazione, per garantire che i dati che ottengono siano accurati, completi e nella struttura prevista (e che i futuri membri del team non abbiano lottare con un cattivo codice di analisi).
Sebbene possa sembrare ovvio scegliere l'approccio di convalida più completo, molti team finiscono per utilizzare la convalida dei dati reattiva. Ciò può essere dovuto a una serie di motivi. Spesso, il codice di analisi è un ripensamento per molti team che non si occupano di dati e quindi non viene testato.
È anche comune, purtroppo, che i dati vengano elaborati senza alcuna convalida. Inoltre, un codice di analisi scadente viene notato solo quando è veramente brutto, di solito settimane dopo, quando qualcuno nota che un rapporto è gravemente sbagliato o addirittura mancante.
Le tecniche reattive di convalida dei dati possono assomigliare alla trasformazione dei tuoi dati nel tuo magazzino con uno strumento come dbt o Dataform.
Sebbene tutti questi metodi possano aiutarti a risolvere i tuoi problemi di dati (e spesso con strumenti oggettivamente ottimi), non ti aiuteranno comunque a sanare la causa principale dei tuoi dati errati (ad esempio, governance dei dati frammentaria o analisi implementate su un progetto- base per progetto senza comunicazione tra i team) in primo luogo, lasciandoti tornare da loro ogni volta.
La validazione reattiva dei dati da sola non è sufficiente; è necessario impiegare tecniche proattive di convalida dei dati per essere veramente efficaci ed evitare i costosi problemi menzionati in precedenza. Ecco perché:
- I dati sono uno sport di squadra. Non spetta solo a un reparto oa un individuo garantire che i tuoi dati siano puliti. È necessario che tutti lavorino insieme per garantire dati di alta qualità e risolvere i problemi prima che si verifichino.
- La convalida dei dati dovrebbe far parte del ciclo di vita dello sviluppo del software (SDLC). Quando lo integri nel tuo SDLC e in parallelo al tuo sviluppo basato su test esistente e al tuo processo di QA automatizzato (invece di aggiungerlo come ripensamento), risparmi tempo prevenendo problemi di dati piuttosto che risolverli in seguito.
- La convalida proattiva dei dati può essere integrata negli strumenti esistenti e nelle pipeline CI/CD. Questo è facile per i tuoi team di sviluppo perché hanno già investito nell'automazione dei test e ora possono estenderlo rapidamente per aggiungere copertura anche per l'analisi.
- I test proattivi di convalida dei dati sono uno dei modi migliori in cui i team in rapido movimento possono operare in modo efficiente. Assicura che possano iterare rapidamente ed evitare la deriva dei dati e altri problemi a valle.
- La convalida proattiva dei dati ti dà la sicurezza di modificare e aggiornare il tuo codice secondo necessità, riducendo al minimo il numero di bug che dovrai eliminare in seguito. Questo processo proattivo garantisce che tu e il tuo team stiate modificando solo il codice direttamente correlato ai dati che vi interessano.
Ora che abbiamo stabilito perché la convalida proattiva dei dati è importante, la domanda successiva è: come si fa? Quali sono gli strumenti e i metodi utilizzati dai team per garantire che i loro dati siano validi prima che sorgano problemi?
Immergiamoci.
Metodi di validazione dei dati
La convalida dei dati non è solo un passaggio che avviene in un punto specifico. Può verificarsi in più punti del ciclo di vita dei dati: al client, al server, nella pipeline o nel magazzino stesso.
In realtà è molto simile al test del software scritto in grande in molti modi. C'è, tuttavia, una differenza fondamentale. Non stai testando solo gli output; stai anche confermando che gli input dei tuoi dati sono corretti.
Diamo un'occhiata a come appare la convalida dei dati in ogni sede, esaminando quali sono reattivi e quali proattivi.
Tecniche di validazione dei dati nel client
Puoi utilizzare strumenti come Amplitude Data per sfruttare l'indipendenza dai tipi, i test unitari e il linting (analisi statica del codice) per la convalida dei dati lato client.
Ora, questo è un ottimo punto di partenza, ma è importante capire che tipo di test questo tipo di strumento ti consente di fare a questo livello. Ecco una ripartizione:
- L'indipendenza dai tipi si verifica quando il compilatore convalida i tipi di dati e le istruzioni di implementazione all'origine, prevenendo errori a valle dovuti a errori di battitura o variabili impreviste.
- Il test unitario è quando si testa una selezione specifica di codice in isolamento. Sfortunatamente, la maggior parte dei team non integra l'analisi nei test unitari quando si tratta di convalidare la propria analisi.
- Il test A/B consiste nel testare il flusso di analisi rispetto a un set di dati in stato d'oro (una versione dell'analisi che sai essere perfetta) o una copia dei dati di produzione. Questo ti aiuta a capire se i cambiamenti che stai apportando sono buoni e un miglioramento rispetto alla situazione esistente.
Tecniche di validazione dei dati in cantiere
La convalida dei dati nella pipeline consiste nell'assicurarsi che i dati inviati dal cliente corrispondano al formato dei dati nel magazzino. Se i due non sono sulla stessa pagina, i tuoi consumatori di dati (responsabili di prodotto, analisti di dati, ecc.) non otterranno informazioni utili dall'altra parte.

I metodi di convalida dei dati nella pipeline possono avere il seguente aspetto:
- Convalida dello schema per garantire che il monitoraggio degli eventi corrisponda a quanto definito nel registro dello schema.
- Integrazione e test dei componenti tramite test di utilità chiave relazionali, univoci e surrogati in uno strumento come dbt per assicurarsi che il tracciamento tra le piattaforme funzioni bene.
- Test di freschezza tramite uno strumento come dbt per determinare quanto sono "freschi" i tuoi dati di origine (ovvero quanto sono aggiornati e sani).
- Test distributivi con uno strumento come Great Expectations per ricevere avvisi quando i set di dati o i campioni non corrispondono agli input previsti e assicurarsi che le modifiche apportate al monitoraggio non rovinino i flussi di dati esistenti.
Tecniche di validazione dei dati in magazzino
Puoi utilizzare test dbt, test Dataform e Great Expectations per assicurarti che i dati inviati al tuo magazzino siano conformi alle convenzioni che ti aspetti e di cui hai bisogno. Puoi anche eseguire trasformazioni a questo livello, incluso il controllo del tipo e l'indipendenza dal tipo all'interno di tali trasformazioni, ma non consigliamo questo metodo come tecnica di convalida primaria poiché è reattivo.
A questo punto, i metodi di convalida disponibili per i team includono la convalida della conformità dei dati a determinate convenzioni, quindi la loro trasformazione in modo che corrispondano a tali convenzioni. I team possono anche utilizzare test di relazione e freschezza con dbt, nonché test di valore/intervallo utilizzando Great Expectations.
Tutte le funzionalità di questo strumento si riducono ad alcune tecniche chiave di convalida dei dati a questo livello:
- Schematizzazione per garantire che i dati CRUD e le trasformazioni siano conformi alle convenzioni impostate.
- Test di sicurezza per garantire che i dati siano conformi ai requisiti di sicurezza come il GDPR.
- Test delle relazioni in strumenti come dbt per assicurarsi che i campi in un modello siano mappati ai campi in una determinata tabella (ovvero integrità referenziale).
- Freschezza e test di distribuzione (come accennato nella sezione pipeline).
- Controllo dell'intervallo e del tipo che conferma che i dati inviati dal client rientrano nell'intervallo o nel formato previsto dal magazzino.
Un ottimo esempio di molti di questi test in azione può essere trovato scavando nel motore di scoperta e metadati di Lyft Amundsen. Questo strumento consente ai consumatori di dati dell'azienda di cercare i metadati degli utenti per aumentarne sia l'usabilità che la sicurezza. Il metodo principale di Lyft per garantire la qualità e l'usabilità dei dati è una sorta di controllo delle versioni tramite un'attività Airflow di pulizia dei grafici che elimina i dati vecchi e duplicati quando vengono aggiunti nuovi dati al loro magazzino.
Perché ora è il momento di adottare migliori tecniche di convalida dei dati
In passato, i data team hanno avuto difficoltà con la convalida dei dati perché le loro organizzazioni non si rendevano conto dell'importanza dell'igiene e della governance dei dati. Non è più il mondo in cui viviamo.
Le aziende hanno capito che la qualità dei dati è fondamentale. La semplice pulizia dei dati errati in modo reattivo non è sufficiente. Assumere team di data engineer per ripulire i dati attraverso la trasformazione o scrivere infinite query SQL è un uso non necessario e inefficiente di tempo e denaro.
In passato era accettabile disporre di dati accurati all'80% (più o meno, a seconda del caso d'uso), lasciando un margine di errore del 20%. Potrebbe andare bene per una semplice analisi, ma non è abbastanza buono per alimentare un motore di raccomandazione del prodotto, rilevare anomalie o prendere decisioni aziendali o di prodotto critiche.
Le aziende assumono ingegneri per creare prodotti e fare un ottimo lavoro. Se devono dedicare del tempo a gestire dati errati, non stanno sfruttando al massimo il loro tempo. Ma la convalida dei dati restituisce loro quel tempo per concentrarsi su ciò che sanno fare meglio: creare valore per l'organizzazione.
La buona notizia è che dati di alta qualità sono a portata di mano. Per raggiungerlo, le aziende devono aiutare tutti a comprenderne il valore abbattendo i silos tra produttori di dati e consumatori di dati. Quindi, le aziende dovrebbero eliminare i fogli di calcolo e applicare migliori pratiche ingegneristiche alle loro analisi, come il controllo delle versioni e la schematizzazione. Infine, dovrebbero assicurarsi che le best practice sui dati siano seguite in tutta l'organizzazione con un piano per il monitoraggio e la governance dei dati.
Investi nella convalida proattiva dell'analisi per ottenere dividendi dai dati
Nel mondo di oggi, gli strumenti ei metodi di convalida dei dati reattivi e impliciti non sono più sufficienti. Ti costano tempo, denaro e, forse la cosa più importante, fiducia.
Per evitare questo destino, abbraccia una filosofia di proattività. Identifica i problemi prima che diventino problemi costosi convalidando i tuoi dati di analisi dall'inizio e per tutto il ciclo di vita dello sviluppo del software.
