Testues i të dhënave të mëdha dhe të vogla: tendencat, teoria, historia ime

Përshëndetje të gjithëve, emri im është Alexander, dhe unë jam një inxhinier i cilësisë së të dhënave që kontrollon të dhënat për cilësinë. Ky artikull do të flasë se si arrita në këtë dhe pse në vitin 2020 kjo zonë e testimit ishte në kulmin e një vale.

Testues i të dhënave të mëdha dhe të vogla: tendencat, teoria, historia ime

trend global

Bota e sotme po përjeton një revolucion tjetër teknologjik, një aspekt i të cilit është përdorimi i të dhënave të grumbulluara nga të gjitha llojet e kompanive për të rrotulluar volantin e tyre të shitjeve, fitimeve dhe PR. Duket se është disponueshmëria e të dhënave të mira (cilësore), si dhe truri i aftë që mund të fitojë para prej tyre (përpunojë saktë, vizualizojë, ndërtojë modele të mësimit të makinerive, etj.), janë bërë çelësi i suksesit për shumë njerëz sot. Nëse 15-20 vjet më parë, kompanitë e mëdha merreshin kryesisht me punë intensive me grumbullimin e të dhënave dhe fitimin e parave të tyre, sot kjo është fati i pothuajse të gjithë njerëzve të arsyeshëm.

Në këtë drejtim, disa vite më parë, të gjitha portalet e kërkimit të punës në mbarë botën filluan të vërshojnë me vende të lira pune të Data Scientists, pasi të gjithë ishin të sigurt se duke marrë një specialist të tillë në stafin e tyre, ata mund të ndërtonin një supermodel të mësimit të makinerive, të parashikonin të ardhmen. dhe bëni një "kërcim kuantik" për kompaninë. Me kalimin e kohës, njerëzit kuptuan se kjo qasje pothuajse kurrë nuk funksionon, pasi larg nga të gjitha të dhënat që bien në duart e specialistëve të tillë janë të përshtatshme për modele trajnimi.

Dhe filluan kërkesat nga Data Scientists: “Le të blejmë më shumë të dhëna nga këta dhe ata…”, “Nuk kemi të dhëna të mjaftueshme…”, “Na duhen disa të dhëna më shumë dhe mundësisht me cilësi të lartë…”. Në bazë të këtyre kërkesave, filluan të ndërtohen ndërveprime të shumta midis kompanive që zotërojnë një grup të dhënash. Natyrisht, kjo kërkonte organizimin teknik të këtij procesi - për t'u lidhur me burimin e të dhënave, për t'i shkarkuar ato, për të kontrolluar nëse janë të ngarkuara plotësisht, etj. Numri i proceseve të tilla filloi të rritet dhe sot kemi një nevojë të madhe për një lloj tjetër. të specialistëve - Inxhinierët e Cilësisë së të Dhënave - ata që do të monitoronin rrjedhën e të dhënave në sistem ( tubacionet e të dhënave), cilësinë e të dhënave në hyrje dhe dalje, nxirrnin përfundime për mjaftueshmërinë, integritetin dhe karakteristikat e tjera të tyre.

Trendi për cilësinë e të dhënave të inxhinierëve na erdhi nga SHBA, ku në mes të epokës së furishme të kapitalizmit, askush nuk është gati të humbasë betejën për të dhënat. Më poshtë kam dhënë pamjet e ekranit nga dy nga faqet më të njohura të kërkimit të punës në SHBA: www.monster.com и www.dice.com - të cilat shfaqin të dhënat e datës 17 mars 2020 për numrin e vendeve të lira të postuara të pranuara, për fjalët kyçe: Cilësia e të Dhënave dhe Shkencëtar i të Dhënave.

www.monster.com

Data Scientists – 21416 vende të lira pune
Cilësia e të dhënave – 41104 vende të lira pune

Testues i të dhënave të mëdha dhe të vogla: tendencat, teoria, historia ime
Testues i të dhënave të mëdha dhe të vogla: tendencat, teoria, historia ime

www.dice.com

Data Scientists – 404 vende të lira pune
Cilësia e të dhënave - Vende të lira pune 2020

Testues i të dhënave të mëdha dhe të vogla: tendencat, teoria, historia ime
Testues i të dhënave të mëdha dhe të vogla: tendencat, teoria, historia ime

Natyrisht, këto profesione nuk konkurrojnë në asnjë mënyrë me njëra-tjetrën. Me pamje nga ekrani, thjesht doja të ilustroja situatën aktuale në tregun e punës për sa i përket kërkesave për inxhinierë të cilësisë së të dhënave, të cilët tani janë shumë më të nevojshëm se shkencëtarët e të dhënave.

Në qershor 2019, EPAM, duke iu përgjigjur nevojave të tregut modern të TI-së, veçoi cilësinë e të dhënave si praktikë më vete. Inxhinierët e cilësisë së të dhënave gjatë punës së tyre të përditshme menaxhojnë të dhënat, kontrollojnë sjelljen e tyre në kushte dhe sisteme të reja, kontrollojnë rëndësinë e të dhënave, mjaftueshmërinë dhe rëndësinë e tyre. Me gjithë këtë, në një kuptim praktik, inxhinierët e Cilësisë së të Dhënave i kushtojnë vërtet pak kohë testimit funksional klasik, POR varet shumë nga projekti (do të jap një shembull më poshtë).

Detyrat e një Inxhinieri të Cilësisë së të Dhënave nuk kufizohen në kontrolle rutinë manuale/automatike për "nul, numërim dhe shuma" në tabelat e bazës së të dhënave, por kërkojnë një kuptim të thellë të nevojave të biznesit të klientit dhe, në përputhje me rrethanat, aftësinë për të transformuar të dhënat e disponueshme në informacione të përdorshme të biznesit.

Teoria e cilësisë së të dhënave

Testues i të dhënave të mëdha dhe të vogla: tendencat, teoria, historia ime

Në mënyrë që të imagjinojmë plotësisht rolin e një inxhinieri të tillë, le të kuptojmë se çfarë është cilësia e të dhënave në teori.

Cilësia e të dhënave - një nga fazat e Menaxhimit të të Dhënave (e gjithë bota që do t'jua lëmë për studim të pavarur) dhe është përgjegjëse për analizimin e të dhënave sipas kritereve të mëposhtme:

Testues i të dhënave të mëdha dhe të vogla: tendencat, teoria, historia ime
Unë mendoj se nuk ia vlen të deshifroni secilën nga pikat (teorikisht ato quhen "dimensione të të dhënave"), ato përshkruhen mjaft mirë në foto. Por vetë procesi i testimit nuk nënkupton kopjimin e rreptë të këtyre veçorive në rastet e testimit dhe verifikimin e tyre. Në cilësinë e të dhënave, si në çdo lloj tjetër testimi, është e nevojshme, para së gjithash, të ndërtohet mbi kërkesat e cilësisë së të dhënave të dakorduara me pjesëmarrësit e projektit që marrin vendime biznesi.

Në varësi të projektit të Cilësisë së të Dhënave, një inxhinier mund të kryejë funksione të ndryshme: nga një testues-automatik i zakonshëm me një vlerësim sipërfaqësor të cilësisë së të dhënave te një person që kryen profilin e tyre të thellë sipas kritereve të mësipërme.

Një përshkrim shumë i detajuar i Menaxhimit të të Dhënave, Cilësisë së të Dhënave dhe proceseve përkatëse përshkruhet mirë në një libër të quajtur "DAMA-DMBOK: Trupi i njohurive për Menaxhimin e të Dhënave: Botimi i 2-të". Unë rekomandoj shumë këtë libër si një hyrje në këtë temë (ju do të gjeni një lidhje me të në fund të artikullit).

Historia Ime

Në industrinë e IT-së, unë kam kaluar nga Junior QA në kompanitë e produkteve në Inxhinier Drejtues të Cilësisë së të Dhënave në EPAM. Pas rreth dy vjetësh si testues, kisha një bindje të fortë se bëra absolutisht të gjitha llojet e testimeve: regresion, funksional, stres, stabilitet, siguri, UI, etj. - dhe provova një numër të madh mjetesh testimi, pasi kisha punuar gjatë tre gjuhë programimi: Java, Scala, Python.

Duke parë prapa, e kuptoj pse grupi i aftësive të mia ka qenë kaq i larmishëm - kam qenë i përfshirë në projekte të dhënash, të mëdha dhe të vogla. Kjo është ajo që më solli në botën e shumë mjeteve dhe mundësive për rritje.

Për të vlerësuar shumëllojshmërinë e mjeteve dhe mundësive për fitimin e njohurive dhe aftësive të reja, mjafton të shikoni foton më poshtë, e cila tregon më të njohurit prej tyre në botën e "Data & AI".

Testues i të dhënave të mëdha dhe të vogla: tendencat, teoria, historia ime
Ky lloj ilustrimi prodhohet çdo vit nga një prej kapitalistëve të njohur të sipërmarrjes Matt Turck, një vendas i zhvillimit të softuerit. Këtu lidhje në blogun e tij dhe firma e kapitalit sipërmarrësku punon si ortak.

Unë u rrita profesionalisht veçanërisht shpejt kur isha i vetmi testues në një projekt, ose të paktën në fillim të një projekti. Është në këtë moment që ju duhet të jeni përgjegjës për të gjithë procesin e testimit dhe nuk keni mundësi të tërhiqeni, vetëm përpara. Në fillim ishte e frikshme, por tani të gjitha avantazhet e një testi të tillë janë të dukshme për mua:

  • Ju filloni të komunikoni me të gjithë ekipin si kurrë më parë, pasi nuk ka asnjë përfaqësues për komunikim: as menaxheri i testit dhe as kolegët testues.
  • Zhytja në projekt bëhet tepër e thellë, dhe ju keni informacion për të gjithë komponentët si në përgjithësi ashtu edhe në detaje.
  • Zhvilluesit nuk ju shikojnë si "ai djaloshi testues që nuk e di se çfarë po bën", por më tepër si të barabartë, duke prodhuar vlerë të jashtëzakonshme për ekipin me autotestet e tij dhe parashikimin e gabimeve në një nyje të veçantë produkti.
  • Si rezultat, ju jeni më efikas, më i kualifikuar, më i kërkuar.

Ndërsa projekti rritej, në 100% të rasteve u bëra mentor për testuesit e rinj që erdhën tek ai, i mësova dhe u përcolla njohuritë që kisha mësuar vetë. Në të njëjtën kohë, në varësi të projektit, nuk kam marrë gjithmonë nivelin më të lartë të specialistëve të testimit të makinave nga menaxhmenti dhe ka pasur nevojë t'i trajnoj ata në automatizim (për ata që dëshirojnë), ose të krijoj mjete për t'u përdorur prej tyre në aktivitetet e përditshme (mjete për gjenerimin e të dhënave dhe ngarkimin e tyre në sistem, një mjet për kryerjen e testimit të ngarkesës/testimit të shpejtë të stabilitetit, etj.).

Shembull i një projekti specifik

Fatkeqësisht, për shkak të detyrimeve për moszbulim, nuk mund të flas në detaje për projektet në të cilat kam punuar, por do të jap shembuj të detyrave tipike të Inxhinierit të Cilësisë së të Dhënave në një nga projektet.

Thelbi i projektit është të zbatojë një platformë për përgatitjen e të dhënave për trajnime bazuar në modelet e mësimit të makinerive. Klienti ishte një kompani e madhe farmaceutike nga SHBA. Teknikisht ishte një grup Kubernetesduke u ngritur në AWS EC2 raste, me disa mikroshërbime dhe projektin themelor me burim të hapur nga EPAM - legjion, përshtatur me nevojat e një klienti të caktuar (tani projekti është rilindur odahu). Proceset ETL u organizuan duke përdorur Rrjedha e ajrit Apache dhe zhvendosi të dhënat nga Forcat e Shitjes sistemet e klientëve në AWS S3 kova. Më pas, një imazh doker i një modeli të mësimit të makinerive u vendos në platformë, i cili u trajnua mbi të dhëna të reja dhe, duke përdorur ndërfaqen REST API, lëshoi ​​parashikime që ishin me interes për biznesin dhe zgjidhte probleme specifike.

Vizualisht, dukej diçka si kjo:

Testues i të dhënave të mëdha dhe të vogla: tendencat, teoria, historia ime
Kishte shumë testime funksionale në këtë projekt, dhe duke pasur parasysh shpejtësinë e zhvillimit të veçorive dhe nevojën për të ruajtur ritmin e ciklit të lëshimit (sprinte dy-javore), ishte e nevojshme që menjëherë të mendohej për testimin automatik të nyjeve më kritike të sistemit. . Shumica e vetë platformës me bazë Kubernetes u mbulua nga autotestet e zbatuara në Korniza e Robotit + Python, por ato gjithashtu duhej të mbështeteshin dhe zgjeroheshin. Për më tepër, për lehtësinë e klientit, u krijua një GUI për të menaxhuar modelet e mësimit të makinerive të vendosura në grup, si dhe aftësinë për të specifikuar se nga dhe ku të transferohen të dhënat për trajnimin e modelit. Kjo shtesë e gjerë shkaktoi një zgjerim të kontrolleve funksionale të automatizuara, të cilat kryheshin kryesisht përmes thirrjeve REST API dhe një numri të vogël testesh të UI-së në fund të fundit. Rreth ekuatorit të gjithë kësaj lëvizjeje, na u bashkua një testues manual, i cili bëri një punë të shkëlqyer me testimin e pranimit të versioneve të produktit dhe komunikimin me klientin për pranimin e versionit të ardhshëm. Përveç kësaj, për shkak të ardhjes së një specialisti të ri, ne mundëm të dokumentonim punën tonë dhe të shtonim disa kontrolle manuale shumë të rëndësishme që ishin të vështira për t'u automatizuar menjëherë.

Dhe së fundi, pasi arritëm stabilitet nga platforma dhe shtesa GUI mbi të, filluam ndërtimin e tubacioneve ETL duke përdorur Apache Airflow DAG. Kontrolli i automatizuar i cilësisë së të dhënave u krye duke shkruar DAG të posaçëm Airflow që kontrollonin të dhënat bazuar në rezultatet e procesit ETL. Si pjesë e këtij projekti, ne ishim me fat dhe klienti na dha akses në grupe të dhënash të anonimizuara, mbi të cilat testuam. Ne kontrolluam të dhënat rresht pas rreshti për pajtueshmërinë e tipit, praninë e të dhënave të prishura, numrin total të regjistrimeve para dhe pas, një krahasim të transformimeve të kryera nga procesi ETL për grumbullimin, ndryshimin e emrave të kolonave, etj. Përveç kësaj, këto kontrolle u shkallëzuan në burime të ndryshme të të dhënave, për shembull, përveç SalesForce, edhe në MySQL.

Kontrollet përfundimtare të cilësisë së të dhënave u kryen tashmë në nivelin S3, ku ato u ruajtën dhe ishin në gjendje gati për përdorim për trajnimin e modeleve të mësimit të makinerive. Për të marrë të dhëna nga skedari përfundimtar CSV i vendosur në S3 Bucket dhe për ta vërtetuar atë, u shkrua një kod duke përdorur klient boto3.

Gjithashtu nga ana e klientit kishte një kërkesë për të ruajtur një pjesë të të dhënave në një kovë S3 dhe një pjesë në një tjetër. Kjo kërkonte gjithashtu shkrimin e kontrolleve shtesë që kontrollojnë besueshmërinë e një klasifikimi të tillë.

Përvoja e përgjithësuar në projekte të tjera

Një shembull i listës më të përgjithësuar të aktiviteteve të një inxhinieri të cilësisë së të dhënave:

  • Përgatitni të dhënat e testimit (të vlefshme të pavlefshme të mëdha të vogla) përmes një mjeti të automatizuar.
  • Ngarkoni të dhënat e përgatitura në burimin origjinal dhe kontrolloni gatishmërinë e tij për përdorim.
  • Nisni proceset ETL për përpunimin e një grupi të dhënash nga ruajtja e burimit në atë përfundimtar ose të ndërmjetëm duke përdorur një grup të caktuar cilësimesh (nëse është e mundur, vendosni parametra të konfigurueshëm për detyrën ETL).
  • Verifikoni të dhënat e përpunuara nga procesi ETL për cilësinë dhe përputhshmërinë e tyre me kërkesat e biznesit.

Në të njëjtën kohë, fokusi kryesor i kontrolleve duhet të jetë jo vetëm në faktin se rrjedha e të dhënave në sistem, në parim, u përpunua dhe arriti në fund (që është pjesë e testimit funksional), por në pjesën më të madhe në kontrollimin dhe vërtetimin e të dhënave për përputhjen me kërkesat e pritshme, identifikimin e anomalive dhe gjëra të tjera.

Mjete

Një nga teknikat për një kontroll të tillë të të dhënave mund të jetë organizimi i kontrolleve zinxhir në çdo fazë të përpunimit të të dhënave, i ashtuquajturi "zinxhiri i të dhënave" në literaturë - kontrolli i të dhënave nga burimi deri në pikën e përdorimit përfundimtar. Kontrolle të tilla më së shpeshti zbatohen duke shkruar pyetje të vërtetuara SQL. Është e qartë se pyetje të tilla duhet të jenë sa më të lehta që të jetë e mundur dhe të kontrollojnë pjesë të veçanta të cilësisë së të dhënave (tabelat meta të dhëna, rreshta bosh, NULL, Gabimet në sintaksë - atribute të tjera që kërkohen për t'u kontrolluar).

Në rastin e testimit të regresionit, i cili përdor grupe të dhënash të gatshme (të pandryshuara, pak të ndryshuara), kodi i autotestit mund të ruajë shabllone të gatshëm për të kontrolluar të dhënat për pajtueshmërinë me cilësinë (përshkrimet e meta të dhënave të pritshme të tabelës; objektet e mostrës së vargut që mund të të zgjedhura rastësisht gjatë testit, etj.).

Gjithashtu, gjatë testimit, ju duhet të shkruani proceset e testimit ETL duke përdorur korniza të tilla si Apache Airflow, Apache Spark apo edhe një mjet cloud me kuti të zezë si Përgatitja e të dhënave GCP, Rrjedha e të dhënave GCP Dhe kështu me radhë. Kjo rrethanë e bën inxhinierin e testimit të zhytet në parimet e funksionimit të mjeteve të mësipërme dhe akoma më efektivisht të kryejë testime funksionale (për shembull, proceset ETL që ekzistojnë në projekt) dhe t'i përdorin ato për të kontrolluar të dhënat. Në veçanti, Apache Airflow ka operatorë të gatshëm për të punuar me bazat e të dhënave analitike të njohura, për shembull GCP BigQuery. Shembulli më themelor i përdorimit të tij tashmë është përshkruar. këtukështu që nuk do ta përsëris veten.

Përveç zgjidhjeve të gatshme, askush nuk ju ndalon të zbatoni teknikat dhe mjetet tuaja. Kjo do të jetë e dobishme jo vetëm për projektin, por edhe për vetë Inxhinierin e Cilësisë së të Dhënave, i cili do të përmirësojë këndvështrimin e tij teknik dhe aftësitë e kodimit.

Si funksionon në një projekt real

Një ilustrim i mirë i paragrafëve të fundit në lidhje me "zinxhirin e të dhënave", ETL dhe kontrollet e kudogjendura është procesi i mëposhtëm nga një nga projektet reale:

Testues i të dhënave të mëdha dhe të vogla: tendencat, teoria, historia ime

Këtu, të dhëna të ndryshme (natyrisht, të përgatitura nga ne) hyjnë në "gykën" hyrëse të sistemit tonë: të vlefshme, të pavlefshme, të përziera, etj., pastaj ato filtrohen dhe futen në ruajtjen e ndërmjetme, pastaj priten përsëri nga një seri transformimet dhe vendosen në ruajtjen përfundimtare, e cila, nga ana tjetër, do të përdoret për analitikë, ndërtimin e të dhënave dhe kërkimin e njohurive të biznesit. Në një sistem të tillë, ne, pa kontrolluar funksionalisht punën e proceseve ETL, fokusohemi në cilësinë e të dhënave para dhe pas transformimeve, si dhe në daljen në analitikë.

Për të përmbledhur sa më sipër, pavarësisht nga vendet ku kam punuar, kudo kam qenë i përfshirë në projektet e të dhënave që ndërthurnin karakteristikat e mëposhtme:

  • Vetëm përmes automatizimit mund të testohen disa raste dhe mund të arrihet një cikël lëshimi i pranueshëm për biznesin.
  • Testuesi në një projekt të tillë është një nga anëtarët më të respektuar të ekipit, pasi sjell përfitime të mëdha për secilin prej pjesëmarrësve (përshpejtim i testimit, të dhëna të mira të Data Scientist, zbulim i hershëm i defekteve).
  • Nuk ka rëndësi nëse punoni në harduerin tuaj apo në retë – të gjitha burimet janë të përmbledhura në një grup si Hortonworks, Cloudera, Mesos, Kubernetes, etj.
  • Projektet janë ndërtuar mbi një qasje mikroservice, mbizotëron llogaritja e shpërndarë dhe paralele.

Unë vërej se kur teston në fushën e Cilësisë së të Dhënave, një testues e zhvendos fokusin e tij profesional tek kodi i produktit dhe mjetet e përdorura.

Karakteristikat dalluese të testimit të cilësisë së të dhënave

Për më tepër, për veten time, unë kam identifikuar karakteristikat dalluese të testimit në projektet (sistemet) të të dhënave (Big Data) dhe fusha të tjera (do të bëj menjëherë një rezervim SHUMË të përgjithësuar dhe jashtëzakonisht subjektiv):

Testues i të dhënave të mëdha dhe të vogla: tendencat, teoria, historia ime

Lidhje të dobishme

  1. Teori: DAMA-DMBOK: Menaxhimi i të dhënave Trupi i njohurive: Botimi i 2-të.
  2. Qendra e trajnimit Epam 
  3. Materialet e rekomanduara për një Inxhinier fillestar të Cilësisë së të Dhënave:
    1. Kurs falas në Stepik: Hyrje në bazat e të dhënave
    2. Kursi mbi Learning LinkedIn: Bazat e shkencës së të dhënave: Inxhinieria e të dhënave.
    3. Artikuj:
    4. Video:

Përfundim

Cilësia e të dhënave është një drejtim shumë i ri premtues, të jesh pjesë e të cilit do të thotë të jesh pjesë e një start-up. Pasi të jeni në cilësinë e të dhënave, do të zhyteni në një numër të madh teknologjish moderne të kërkuara, por më e rëndësishmja, do të keni mundësi të mëdha për gjenerimin dhe zbatimin e ideve tuaja. Ju do të jeni në gjendje të përdorni qasjen e përmirësimit të vazhdueshëm jo vetëm për projektin, por edhe për veten tuaj, duke u zhvilluar vazhdimisht si specialist.

Burimi: www.habr.com

Shto një koment