Tehnici populare de validare a datelor pentru analiză și de ce aveți nevoie de ele
Publicat: 2022-12-19Nota editorului: acest articol a fost publicat inițial pe blogul Iteratively pe 14 decembrie 2020.
La sfârșitul zilei, analiza datelor dvs. trebuie testată ca orice alt cod. Dacă nu validezi acest cod – și datele pe care le generează – poate fi costisitor (cum ar fi costisitor de 9,7 milioane de dolari pe an, conform Gartner).
Pentru a evita această soartă, companiile și inginerii lor pot folosi o serie de tehnici de validare a datelor proactive și reactive. Recomandăm cu căldură primul, așa cum vom explica mai jos. O abordare proactivă a validării datelor va ajuta companiile să se asigure că datele pe care le au sunt curate și gata de lucru.
Tehnici reactive vs. proactive de validare a datelor: Rezolvați problemele de date înainte ca acestea să devină o problemă
„Un gram de prevenire merită o jumătate de kilogram de vindecare.” Este o veche zicală care este adevărată în aproape orice situație, inclusiv în tehnicile de validare a datelor pentru analiză. Un alt mod de a spune este că este mai bine să fii proactiv decât să fii reactiv.
Scopul oricărei validări a datelor este de a identifica unde datele ar putea fi inexacte, inconsecvente, incomplete sau chiar lipsă.
Prin definiție, validarea reactivă a datelor are loc după fapt și utilizează detectarea anomaliilor pentru a identifica orice probleme pe care le-ar putea avea datele dvs. și pentru a ajuta la ameliorarea simptomelor datelor proaste. Deși aceste metode sunt mai bune decât nimic, ele nu rezolvă problemele de bază care cauzează datele proaste în primul rând.
În schimb, credem că echipele ar trebui să încerce să îmbrățișeze tehnici proactive de validare a datelor pentru analiza lor, cum ar fi siguranța tipurilor și schematizarea, pentru a se asigura că datele pe care le obțin sunt exacte, complete și în structura așteptată (și că viitorii membri ai echipei nu au să se lupte cu codul de analiză prost).
Deși ar putea părea evident să alegeți abordarea de validare mai cuprinzătoare, multe echipe ajung să utilizeze validarea reactivă a datelor. Acest lucru poate fi din mai multe motive. Adesea, codul de analiză este o idee ulterioară pentru multe echipe fără date și, prin urmare, nu a fost testat.
De asemenea, este obișnuit, din păcate, ca datele să fie prelucrate fără nicio validare. În plus, codul de analiză slab este observat doar atunci când este cu adevărat rău, de obicei câteva săptămâni mai târziu, când cineva observă că un raport este extrem de greșit sau chiar lipsește.
Tehnicile reactive de validare a datelor pot arăta ca transformarea datelor dvs. în depozitul dvs. cu un instrument precum dbt sau Dataform.
Deși toate aceste metode vă pot ajuta să vă rezolvați problemele legate de date (și adesea cu instrumente obiectiv excelente), ele tot nu vă vor ajuta să vindecați cauza principală a datelor proaste (de exemplu, guvernanța fragmentară a datelor sau analizele care sunt implementate într-un proiect - pe bază de proiect fără comunicare între echipe) în primul rând, lăsându-vă să reveniți la ei de fiecare dată.
Numai validarea reactivă a datelor nu este suficientă; trebuie să folosiți tehnici proactive de validare a datelor pentru a fi cu adevărat eficient și pentru a evita problemele costisitoare menționate mai devreme. Iata de ce:
- Data este un sport de echipă. Nu depinde doar de un departament sau de o persoană să se asigure că datele dvs. sunt curate. Este nevoie ca toată lumea să lucreze împreună pentru a asigura date de înaltă calitate și pentru a rezolva problemele înainte ca acestea să apară.
- Validarea datelor ar trebui să facă parte din ciclul de viață al dezvoltării software (SDLC). Când îl integrezi în SDLC și în paralel cu dezvoltarea actuală bazată pe teste și cu procesul automatizat de QA (în loc să-l adaugi ca o idee ulterioară), economisești timp prin prevenirea problemelor de date, mai degrabă decât prin depanarea lor mai târziu.
- Validarea proactivă a datelor poate fi integrată în instrumentele dvs. existente și în conductele CI/CD. Acest lucru este ușor pentru echipele dvs. de dezvoltare, deoarece acestea sunt deja investite în automatizarea testelor și acum o pot extinde rapid pentru a adăuga acoperire și pentru analiză.
- Testarea proactivă de validare a datelor este una dintre cele mai bune moduri prin care echipele aflate în mișcare rapidă pot funcționa eficient. Se asigură că pot repeta rapid și pot evita derivarea datelor și alte probleme în aval.
- Validarea proactivă a datelor vă oferă încrederea de a modifica și actualiza codul după cum este necesar, reducând în același timp numărul de erori pe care va trebui să le eliminați mai târziu. Acest proces proactiv vă asigură că dvs. și echipa dvs. modificați doar codul care are legătură directă cu datele de care vă interesează.
Acum că am stabilit de ce este importantă validarea proactivă a datelor, următoarea întrebare este: Cum o faci? Care sunt instrumentele și metodele pe care le folosesc echipele pentru a se asigura că datele lor sunt bune înainte de a apărea problemele?
Să ne scufundăm.
Metode de validare a datelor
Validarea datelor nu este doar un pas care are loc la un anumit punct. Se poate întâmpla în mai multe puncte ale ciclului de viață al datelor - la client, la server, în conductă sau în depozitul însuși.
De fapt, este foarte asemănător cu testarea software-ului scris mare în multe feluri. Există, totuși, o diferență cheie. Nu testați singur ieșirile; de asemenea, confirmați că datele introduse sunt corecte.
Să aruncăm o privire la cum arată validarea datelor în fiecare locație, examinând care sunt reactive și care sunt proactive.
Tehnici de validare a datelor la client
Puteți utiliza instrumente precum Amplitude Data pentru a valorifica siguranța tipului, testarea unitară și listingul (analiza codului static) pentru validarea datelor la nivelul clientului.
Acum, acesta este un punct de plecare excelent, dar este important să înțelegeți ce fel de testare vă permite să faceți acest tip de instrument la acest nivel. Iată o defalcare:
- Siguranța tipului este atunci când compilatorul validează tipurile de date și instrucțiunile de implementare la sursă, prevenind erorile din aval din cauza greșelilor de tipar sau a variabilelor neașteptate.
- Testarea unitară este atunci când testați o selecție specifică de cod în mod izolat. Din păcate, majoritatea echipelor nu integrează analiza în testele lor unitare atunci când vine vorba de validarea analizelor.
- Testarea A/B este atunci când testați fluxul dvs. de analiză cu un set de date de aur (o versiune a analizei despre care știți că este perfectă) sau cu o copie a datelor de producție. Acest lucru vă ajută să vă dați seama dacă schimbările pe care le faceți sunt bune și o îmbunătățire a situației existente.
Tehnici de validare a datelor în curs
Validarea datelor în curs se referă la a vă asigura că datele trimise de client se potrivesc cu formatul de date din depozitul dumneavoastră. Dacă cei doi nu sunt pe aceeași pagină, consumatorii dvs. de date (manageri de produs, analiști de date etc.) nu vor primi informații utile pe cealaltă parte.
Metodele de validare a datelor în pipeline pot arăta astfel:
- Validarea schemei pentru a vă asigura că urmărirea evenimentelor se potrivește cu ceea ce a fost definit în registrul schemei.
- Integrarea și testarea componentelor prin teste de utilitate relaționale, unice și surogat într-un instrument precum dbt pentru a vă asigura că urmărirea între platforme funcționează bine.
- Testarea prospețimii printr-un instrument precum dbt pentru a determina cât de „proaspete” sunt datele dumneavoastră sursă (denumite în continuare cât de actuale și sănătoase sunt).
- Teste de distribuție cu un instrument precum Great Expectations pentru a primi alerte atunci când seturile de date sau mostrele nu se potrivesc cu intrările așteptate și pentru a vă asigura că modificările aduse urmăririi dvs. nu încurcă fluxurile de date existente.
Tehnici de validare a datelor în depozit
Puteți utiliza testarea dbt, testarea Dataform și Great Expectations pentru a vă asigura că datele trimise către depozitul dvs. sunt conforme cu convențiile de care vă așteptați și de care aveți nevoie. De asemenea, puteți face transformări la acest strat, inclusiv verificarea tipului și siguranța tipului în cadrul acestor transformări, dar nu am recomanda această metodă ca tehnică principală de validare, deoarece este reactivă.
În acest moment, metodele de validare disponibile pentru echipe includ validarea conformității datelor cu anumite convenții, apoi transformarea lor pentru a le potrivi. Echipele pot folosi, de asemenea, teste de relație și de prospețime cu dbt, precum și teste de valoare/gamă folosind Great Expectations.
Toată funcționalitatea acestui instrument se reduce la câteva tehnici cheie de validare a datelor la acest nivel:
- Schematizare pentru a vă asigura că datele și transformările CRUD sunt conforme cu convențiile stabilite.
- Testare de securitate pentru a se asigura că datele respectă cerințele de securitate precum GDPR.
- Testarea relațiilor în instrumente precum dbt pentru a vă asigura că câmpurile dintr-un model se mapează cu câmpurile dintr-un tabel dat (aka integritatea referențială).
- Testarea prospețimii și distribuției (așa cum am menționat în secțiunea pipeline).
- Verificarea intervalului și a tipului care confirmă că datele trimise de la client se încadrează în intervalul sau formatul așteptat al depozitului.
Un exemplu grozav al multor dintre aceste teste în acțiune poate fi găsit analizând motorul de descoperire și metadate Lyft Amundsen. Acest instrument permite consumatorilor de date de la companie să caute metadatele utilizatorilor pentru a crește atât gradul de utilizare, cât și securitatea. Metoda principală a Lyft de a asigura calitatea și gradul de utilizare a datelor este un fel de versiuni prin intermediul unei sarcini Airflow de curățare a graficelor care șterge datele vechi, duplicate, atunci când sunt adăugate date noi în depozitul lor.
De ce acum este momentul să îmbrățișăm tehnici mai bune de validare a datelor
În trecut, echipele de date s-au luptat cu validarea datelor, deoarece organizațiile lor nu și-au dat seama de importanța igienei și a guvernării datelor. Nu mai este lumea în care trăim.
Companiile au ajuns să realizeze că calitatea datelor este critică. Doar curățarea datelor proaste într-o manieră reactivă nu este suficient de bună. Angajarea echipelor de ingineri de date pentru a curăța datele prin transformare sau scrierea de interogări SQL nesfârșite este o utilizare inutilă și ineficientă a timpului și a banilor.
Cândva, era acceptabil să existe date care sunt 80% precise (dați sau primiți, în funcție de cazul de utilizare), lăsând o marjă de eroare de 20%. Acest lucru ar putea fi bine pentru o analiză simplă, dar nu este suficient de bun pentru a alimenta un motor de recomandare de produse, pentru a detecta anomalii sau pentru a lua decizii critice de afaceri sau de produs.
Companiile angajează ingineri pentru a crea produse și pentru a face o treabă grozavă. Dacă trebuie să-și petreacă timp ocupându-se de date proaste, nu profită la maximum de timpul lor. Dar validarea datelor le oferă timpul înapoi pentru a se concentra pe ceea ce fac cel mai bine: crearea de valoare pentru organizație.
Vestea bună este că datele de înaltă calitate sunt la îndemână. Pentru a-l atinge, companiile trebuie să ajute toată lumea să-și înțeleagă valoarea, eliminând silozurile dintre producătorii de date și consumatorii de date. Apoi, companiile ar trebui să arunce foile de calcul și să aplice practici de inginerie mai bune analizelor lor, cum ar fi versiunea și schematizarea. În cele din urmă, ar trebui să se asigure că cele mai bune practici privind datele sunt urmate în întreaga organizație cu un plan de urmărire și guvernare a datelor.
Investește în validarea proactivă a analizei pentru a câștiga dividende de date
În lumea de astăzi, instrumentele și metodele reactive, implicite de validare a datelor, pur și simplu nu mai sunt suficiente. Te costă timp, bani și, poate cel mai important, încredere.
Pentru a evita această soartă, îmbrățișează o filozofie a proactivității. Identificați problemele înainte ca acestea să devină probleme costisitoare, validând datele dvs. de analiză de la început și pe tot parcursul ciclului de viață al dezvoltării software.