Suure ja vÀikese andmete testija: suundumused, teooria, minu lugu

Tere, minu nimi on Aleksandr ja olen andmekvaliteedi insener, kes tegeleb andmete kvaliteedi kontrollimisega. Selles artiklis rÀÀgin, kuidas ma selleni jÔudsin ja miks on 2020. aastal see testimise suundumine saavutanud tipu.

Suure ja vÀikese andmete testija: suundumused, teooria, minu lugu

Maailma trend

TĂ€napĂ€evane maailm kogeb jĂ€rjekordset tehnoloogilist revolutsiooni, mille ĂŒheks aspektiks on ettevĂ”tete andmete kasutamine oma mĂŒĂŒgivihjade, kasumi ja PR-i edendamiseks. Tundub, et just kvaliteetsete andmete olemasolu ja oskuslikud ajusid, kes suudavad neid rahaks muuta (korrektne töötlemine, visualiseerimine, masinĂ”ppemudelite loomine jne), on tĂ€napĂ€eval paljude eduks mÀÀravaks vĂ”tmena. Kui 15–20 aastat tagasi tegelesid andmete kogumise ja monetiseerimisega peamiselt suured ettevĂ”tted, siis tĂ€na on see peaaegu kĂ”igi mĂ”istlike ettevĂ”tete prioriteet.

SeetĂ”ttu hakkasid paar aastat tagasi kĂ”ik maailmas tööotsimisele pĂŒhendatud veebilehed ĂŒha enam tĂ€ituma Data Scientist'ide töötamisest, kuna kĂ”ik olid veendunud, et kui nad saavad enda meeskonda sellise spetsialisti, saavad nad ehitada ĂŒlipower masinĂ”ppemudeli, ennustada tulevikku ja saavutada ettevĂ”tte jaoks "kvantĂŒpet". Aja jooksul mĂ”istsid inimesed, et selline lĂ€henemine praktiliselt ei tööta, kuna kaugelki kĂ”ik andmed, mis selliste spetsialistide kĂ€tte satuvad, ei sobi mudelite koolitamiseks.

Ja algasid Data Scientist'ide pĂ€ringud: "Ostame veel andmeid nendelt ja seelt...", "Meil on andmetest puudu...", "Vajame veel natuke andmeid ja soovitavalt kvaliteetseid...". Nende pĂ€ringute pĂ”hjal hakkasid kujunema mitmed koostöösuhted ettevĂ”tete vahel, kellel on oma andmekogud. Loomulikult nĂ”udis see protsessi tehnilist korraldamist — andmeallikaga ĂŒhendamine, andmete vĂ€ljavĂ”tmine, nende tĂ€islaadimise kontrollimine jne. Selliste protsesside arv hakkas suurenema ja tĂ€naseks on meil suurenenud nĂ”udlus teistsuguste spetsialistide — andmekvaliteedi inseneride — jĂ€rele, kes jĂ€lgivad andmete voogu sĂŒsteemis (data pipelines), andmete kvaliteeti sisendil ja vĂ€ljundil, teevad jĂ€reldusi nende piisavuse, terviklikkuse ja teiste omaduste kohta.

Andmed kvaliteedi insenerite trend on tulnud meile Ameerika Ühendriikidest, kus kapitalismi Ă”itseva ajastu tipphetkel ei ole keegi valmis andmete lahingut kaotama. Allpool olen esitanud ekraanipildid kahest kĂ”ige populaarsemast tööotsingu veebisaidist Ameerikas: www.monster.com ja www.dice.com — kus kuupĂ€eva seisuga 17. mĂ€rts 2020 on nĂ€htavad avaldatud tööpakkumiste andmed, kasutades mĂ€rksĂ”nu: Andmekvaliteet ja Andmete Teadlane.

www.monster.com

Andmete Teadlastel – 21416 tööpakkumist
Andmekvaliteedil – 41104 tööpakkumist

Suure ja vÀikese andmete testija: suundumused, teooria, minu lugu
Suure ja vÀikese andmete testija: suundumused, teooria, minu lugu

www.dice.com

Andmete Teadlastel – 404 tööpakkumist
Andmekvaliteedil – 2020 tööpakkumist

Suure ja vÀikese andmete testija: suundumused, teooria, minu lugu
Suure ja vÀikese andmete testija: suundumused, teooria, minu lugu

On ilmne, et need ametid ei konkureeri omavahel. Ekraanipildid on lihtsalt nÀitlikustus hetkeolukorrast tööturul Andmekvaliteedi inseneride nÔudluses, mida vajatakse praegu oluliselt rohkem kui Andmete Teadlasi.

2019. aasta juunis eraldas EPAM, reageerides kaasaegse IT-turu vajadustele, Andmekvaliteedi valdkonna eraldi praktikaks. Andmekvaliteedi insenerid haldavad oma igapĂ€evases töös andmeid, kontrollivad nende kĂ€itumist uutes tingimustes ja sĂŒsteemides, jĂ€lgivad andmete asjakohasust, piisavust ja ajakohasust. Sellega seoses pĂŒhendavad Andmekvaliteedi insenerid praktikas tĂ”esti veidi aega klassikalisele funktsionaalsele testimisele, KUID see sĂ”ltub suuresti projektist (nĂ€itena toome edaspidi).

Andmekvaliteedi inseneri kohustused ei piirdu ainult rutiinsete kĂ€sitsi/automaatsete kontrollidega „nullide, arvu ja summade” osas andmebaasi tabelites, vaid nĂ”uavad sĂŒgavat arusaama kliendi Ă€rivajadustest ja vastavalt oskustest muuta olemasolevad andmed Ă€riliseks teabeks.

Andmekvaliteedi teooria

Suure ja vÀikese andmete testija: suundumused, teooria, minu lugu

Kuna soovime paremini mÔista sellise inseneri rolli, uurime, mis on Andmekvaliteet teoorias.

Andmekvaliteet — on ĂŒks etapp Andmehaldusest (kogu maailm, mille me jĂ€tame teie iseseivasse uurimistöösse) ja vastutab andmete analĂŒĂŒsi eest jĂ€rgmiste kriteeriumide jĂ€rgi:

Suure ja vÀikese andmete testija: suundumused, teooria, minu lugu
MĂ”tleksin, et pole mĂ”tet igat punkti lahti seletada (teoorias nimetatakse neid «data dimensions»), need on pildil ĂŒsna hĂ€sti kirjeldatud. Kuid testimise protsess ei eelda nende omaduste rangeid koopiaid testjuhtumitesse ja nende kontrollimist. Andmekvaliteedis, nagu iga teise testimisviisi puhul, on peamine lĂ€htuda andmekvaliteedi nĂ”uetest, mis on kooskĂ”lastatud projekti osalistega, kes teevad Ă€riotsuseid.

SĂ”ltuvalt projektist vĂ”ib andmekvaliteedi insener tĂ€ita erinevaid funktsioone: alates tavalise automatiseeritud testija rollist, kes teeb pinnapealse andmekvaliteedi hindamise, kuni inimeseni, kes viib lĂ€bi nende sĂŒgavat profiilimist ĂŒlaltoodud omaduste pĂ”hjal.

Andmehalduse, andmekvaliteedi ja seotud protsesside vÀga pÔhjalik kirjeldus on raamatus, mille pealkiri on «DAMA-DMBOK: Data Management Body of Knowledge: 2nd Edition». Soovitan seda raamatut selle valdkonna sissejuhatuseks (lingi leiate artikli lÔpust).

Minu lugu

IT-sektoris olen lĂ€binud teekonna Junior testijast tootmisettevĂ”tetes kuni Lead Data Quality Engineer'ini ettevĂ”ttes EPAM. Umbes kahe aasta pĂ€rast testijana töötamist olin kindel, et olen teinud kĂ”iki teste: regressioonitestimine, funktsionaalne testimine, koormustestimine, stabiilsusetestimine, turvatestimine, UI jne — ja proovinud rohkelt testimistööriistu, töötades samal ajal kolme programmeerimiskeelega: Java, Scala, Python.

Tagasi vaadates mĂ”istan, miks mu ametioskuste komplekt osutus nii mitmekesiseks — olen osalenud projektides, mis on seotud andmetega, suurte ja vĂ€ikeste. Just see viis mind paljude tööriistade ja kasvuvĂ”imaluste maailma.

Et hinnata tööriistade ja uute teadmiste ning oskuste saamise vÔimaluste mitmekesisust, piisab, kui vaadata allolevat pilti, kus on kujutatud kÔige populaarsemaid neist maailmas «Data & AI».

Suure ja vÀikese andmete testija: suundumused, teooria, minu lugu
Selliseid illustreerimisi koostab iga-aastaselt ĂŒks tuntud riskikapitalist Matt Turck, kes on pĂ€rit tarkvaraarenduses. Siin on link tema blogi ja riskikapitalifirma, kus ta töötab partnerina.

Ma professionaalne areng kiirenes eriti siis, kui olin ainus testija projektis vĂ”i vĂ€hemalt projekti alguses. Just sellistel hetkedel pead sa vastutama kogu testimisprotsessi eest ja sul pole vĂ”imalust taganeda, vaid liikuda edasi. Alguses oli see hirmutav, kuid nĂŒĂŒd on mulle selged kĂ”ik need eelised, mida see proovikivi pakkus:

  • Sa hakkad suhtlema kogu meeskonnaga nagu kunagi varem, kuna ei ole mingit vahekihti suhtlemiseks: ei ole testihaldurit ega ĂŒhtegi teist testijat.
  • Projektiga sĂŒvenemine muutub uskumatult sĂŒgavaks ning sa omandad infot kĂ”igi komponentide kohta nii ĂŒldiselt kui ka detailselt.
  • Arendajad ei vaata sind enam kui 'seda tĂŒĂŒpi, kes testimises ei tea, millega tegeleb', vaid pigem kui vĂ”rdsust, kes toob meeskonnale tohutu kasu oma automaatsete testide ja vigade prognoosimisega konkreetse toote osas.
  • Tulemusena oled sa efektiivsem, kvalifitseeritum ja nĂ”utum.

Projektide kasvades olin 100% juhtudest mentoriks uutele testijatele, Ă”petasin neid ning edastasin teadmisi, mida ise olin Ă”ppinud. SĂ”ltuvalt projektist ei saanud ma alati juhtkonnalt kĂ”rgetasemelisi automaattestimise spetsialiste ning seetĂ”ttu oli vajadus kas neid automatiseerimist Ă”petada (neile, kes soovisid) vĂ”i luua neile tööriistu igapĂ€evastes tegevustes kasutamiseks (andmete genereerimise ja sĂŒsteemi laadimise tööriistad, koormustestimise/stabiilsustestimise tööriist 'kiireks' jms).

Konkreetse projekti nÀide

Kahjuks ei saa ma konfidentsiaalsusnĂ”uete tĂ”ttu projekti kohta ĂŒksikasjalikult rÀÀkida, kuid toon nĂ€ite tĂŒĂŒpilistest Data Quality Engineer'i ĂŒlesannetest ĂŒhes projektis.

Projekti sisu oli luua platvorm andmete ettevalmistamiseks masinĂ”ppemudelite töötamiseks. Klient oli suur farmaatsiaettevĂ”te Ameerika Ühendriikidest. Tehniliselt oli tegemist klastriga Kubernetes, mis töötas AWS EC2 instantsidel, millel olid mitmed mikroteenused ning mille aluseks oli ettevĂ”tte EPAM avatud lĂ€htekoodiga projekt — Legion, kohandatud vastavalt konkreetse kliendi vajadustele (praegu on projekt muutunud odahu). ETL-protsessid olid korraldatud abiga Apache Airflow ja ja kanti andmeid SalesForce kliendi sĂŒsteemist AWS S3 Buckets. SeejĂ€rel tĂ”ukati platvormile konteinerimudel, mis Ă”ppis viimastest andmetest ja andis REST API kaudu vĂ€lja ennustusi, mis huvitavad Ă€ri ja lahendavad konkreetseid ĂŒlesandeid.

Visuaalselt nÀgi kÔik vÀlja umbes selline:

Suure ja vÀikese andmete testija: suundumused, teooria, minu lugu
Antud projektis oli funktsionaalseid teste piisavalt, arvestades uute funktsioonide arendamise kiirusest ja vajadusest sĂ€ilitada vĂ€ljalaske tsĂŒklite rĂŒtmi (kahe nĂ€dala sprindid), tuli kohe hakata mĂ”tlema testimise automatiseerimisele kĂ”ige kriitilisemate sĂŒsteemi komponentide osas. Suur osa platvormist, mille aluseks on Kubernetes, oli kaetud automaatsete testidega, mis olid loodud Robot Framework + Python, kuid oli vajalik ka nende hooldamine ja laiendamine. Lisaks, tellija mugavuse huvides, loodi GUI masinĂ”ppemudelite haldamiseks, mis olid klastrisse paigaldatud, samuti vĂ”imalus mÀÀrata, kust ja kuhu andmed mudelite koolitamiseks tuleb edastada. See ulatuslik tĂ€iendus tĂ”i kaasa automatiseeritud funktsionaalsete kontrollide laienemise, mis suurel mÀÀral tehti lĂ€bi REST API kutsed ja vĂ€ike arv end-2-end UI teste. Umbes selle kuidas kogu see protsess kulges, liitus meiega manuaalne testija, kes tegi suurepĂ€rast tööd toote versioonide vastuvĂ”tutestimisel ja suhtlemisel tellijaga jĂ€rgmise vĂ€ljaande vastuvĂ”tmise kĂŒsimustes. Lisaks, uue spetsialisti tulekuga suutsime dokumenteerida oma töö ja lisada mitmeid vĂ€ga olulisi manuaalseid kontrollidest, mida oli raske kohe automatiseerida.

Ja lĂ”puks, pĂ€rast seda, kui olime saavutanud stabiilsuse platvormilt ja selle ĂŒlemise GUI ĂŒle, alustasime ETL-pipeline'ide ehitamist Apache Airflow DAG-ide abil. Andmete kvaliteedi automaatne kontroll viidi lĂ€bi spetsiaalsete Airflow DAG-ide kirjutamisega, mis kontrollisid andmeid ETL-protsessi tulemuste alusel. Selle projekti raames oli meil Ă”nne, ja klient andis meile juurdepÀÀsu anonĂŒĂŒmsetele andmekogudele, millel me testisime. Kontrollisime andmeid reaga, et need vastaksid tĂŒĂŒpidele, et tuvastada puudulikud andmed, ĂŒldine kirje arv enne ja pĂ€rast, et vĂ”rrelda ETL-protsessi teostatud muudatusi, sealhulgas agregatsiooni, veergude nimede muutmist jne. Lisaks oli need kontrollid skaleeritud erinevatele andmeallikatele, nĂ€iteks peaaegu SalesForce, samuti MySQL-le.

LÔplikud andmete kvaliteedi kontrollid viidi lÀbi juba S3 tasemel, kus need olid salvestatud ja valmis kasutamiseks masinÔppe mudelite koolitamiseks. Andmete saamiseks lÔplikust CSV-failist, mis asub S3 Bucket'is, ja nende valideerimiseks kirjutati kood, kasutades boto3 klienti.

Samuti oli kliendi poolt nĂ”ue, et osa andmeid salvestatakse ĂŒhte S3 Bucket'isse, osa teise. Selleks oli samuti vajalik kirjutada tĂ€iendavad kontrollid, mis jĂ€lgisid sellise sortimise tĂ”husust.

KokkuvÔtlik kogemus teistelt projektidelt

NĂ€ide kĂ”ige ĂŒldisemast tegevuste loendist andmekvaliteedi insenerile:

  • Valmistada ette testandmed (kehtivad, mittekehtivad, suured, vĂ€ikesed) automatiseeritud tööriista kaudu.
  • Laadida ettevalmistatud andmestik algsesse allikasse ja kontrollida selle kasutusvalmidust.
  • KĂ€ivitada ETL-protsessid, et töödelda andmestikku algses andmehoius lĂ”plikuks vĂ”i vahepealseks, rakendades kindlat konfiguratsioonide kogumit (kui on vĂ”imalik seadistada ETL-ĂŒlesande jaoks konfigureeritavad parameetrid).
  • Kinnitama töödeldud ETL-protsessi andmete kvaliteeti ja vastavust Ă€rinĂ”uetele.

Peamine tĂ€helepanu peab olema suunatud sellele, et andmevoog sĂŒsteemis oleks mitte ainult ĂŒldiselt toiminud ja lĂ”puni jĂ”udnud (mis on funktsionaalset testimist osa), vaid peamiselt andmete kontrollimisele ja valideerimisele, et need vastaksid ootustele, tuvastades anomaaliaid ja muud.

Tööriistad

Üks sellise andmekontrolli tehnikaid vĂ”ib olla andmeprotsesside igas etapis ahelatest kontrollide organiseerimine, nii nimetatud "data chain" — andmete kontroll allikast kuni lĂ”ppkasutuse punktini. Selliseid kontrolle rakendatakse enamasti kontrollivate SQL-pĂ€ringute kirjutamise kaudu. Loomulikult peavad sellised pĂ€ringud olema vĂ”imalikult kerged ja kontrollima andmekvaliteedi eraldi osakesi (tabelite metainformatsioon, tĂŒhjad read, NULL-id, sĂŒntaksivead — teised vajalikud kontrollitavad atribuudid).

Regressioonitestimise korral, kus kasutatakse juba valmis (muutmata vÔi minimaalselt muudetud) andmekogumeid, vÔivad automaatkatsetes olla salvestatud juba valmiskujundatud andmete kvaliteedi kontrollimise mallid (ootuste metainformatsiooni tabelite kirjeldused; valikulised objektid, mida vÔib testi kÀigus juhuslikult valida, jne).

Samuti tuleb testimise kĂ€igus kirjutada teste ETL-protsesside jaoks, kasutades selliseid raamistikke nagu Apache Airflow, Apache Spark vĂ”i tĂ€iesti black-box pilve tööriistu nagu GCP Dataprep, GCP Dataflow jne. See olukord sunnib testimise inseneri sĂŒvenema eespool nimetatud tööriistade toimimispĂ”himĂ”tetesse ja veelgi efektiivsemalt viima lĂ€bi funktsionaalset testimist (nĂ€iteks olemasolevate ETL-protsesside testimist projektis) ning kasutama neid andmete kontrollimisel. EelkĂ”ige on Apache Airflow jaoks olemas juba valmiskujundatud operaatorid töötamiseks populaarsete analĂŒĂŒtiliste andmebaasidega, nĂ€iteks GCP BigQuery. KĂ”ige alusmĂ”te selle kasutamisest on juba vĂ€lja toodud siit, seega ei hakka ma kordama.

Lisaks valmis lahendustele ei keela keegi teil rakendada oma tehnikaid ja tööriistu. See toob kasu mitte ainult projektile, vaid ka Data Quality Engineer'ile, kes seelÀbi arendab oma tehnilist silmaringi ja kodeerimisoskusi.

Kuidas see reaalses projektis töötab

Hea nĂ€ide viimaste lĂ”ikude kohta "data chain", ETL ja kĂ”ikjal esinevate kontrollide osas on jĂ€rgmine protsess ĂŒhest tegelikust projektist:

Suure ja vÀikese andmete testija: suundumused, teooria, minu lugu

Siia, meie sĂŒsteemi sisend «tunnelisse», voolab erinev teave (loomulikult meie ette valmistatud): kehtivad, kehtetud, segatud jne, seejĂ€rel filtreeritakse need ja jĂ”uavad vahehoidlasse, kus neid ootab veel hulk muudatusi ning nende edasine paigutamine lĂ”plikku hoidlasse, millest omakorda hakkatakse analĂŒĂŒtikat, andmemudelite loomist ja Ă€rivaatluste leidmist tegema. Sellises sĂŒsteemis, ETL-protsesside funktsionaalsust kontrollimata, keskendume andmete kvaliteedile enne ja pĂ€rast muudatusi, samuti analĂŒĂŒtika vĂ€ljundis.

KokkuvÔttes vÔib öelda, et sÔltumata kohtadest, kus olen töötanud, olen igal pool olnud kaasatud andmeprojektidesse, mis omavad jÀrgmisi jooni:

  • Ainult automatiseerimise kaudu on vĂ”imalik mĂ”ningaid juhtumeid kontrollida ja saavutada Ă€ri jaoks vastuvĂ”etav vĂ€ljalasketsĂŒkkel.
  • Testija sellises projektis on ĂŒks austatumaid meeskonna liikmeid, kuna ta toob igale osalejale suurt kasu (testimise kiirus, head andmed andmeteadlastele, defektide tuvastamine varases etapis).
  • Ei ole oluline, kas töötate oma riistvaral vĂ”i pilves - kĂ”ik ressursid on abstraktsioonitud Hortonworks, Cloudera, Mesos, Kubernetes jne klastrisse.
  • Projektid on ĂŒles ehitatud mikroteenuste lĂ€henemisele, domineerivad jaotatud ja paralleelsed arvutused.

Tahan mÀrkida, et andmekvaliteedi testimisega tegeledes nihutab testija oma professionaalset fookust toote koodile ja kasutatavatele tööriistadele.

Andmekvaliteedi testimise eripÀrad

Kuid olen vĂ€lja toonud jĂ€rgmised (vĂ€lja arvatud, et nad on ÜLIÜLDISED ja rangelt subjektiivsed) eripĂ€rad andmete (Big Data) projektide (sĂŒsteemide) ja muude valdkondade testimisel:

Suure ja vÀikese andmete testija: suundumused, teooria, minu lugu

Kasulikud lingid

  1. Teooria: DAMA-DMBOK: Andmehalduse teadmiste kogum: 2. vÀljaanne.
  2. Koolituscenter EPAM 
  3. Soovitatavad materjalid algajale Andmekvaliteedi insenerile:
    1. Tasuta kursus Stepik'is: Sissejuhatus andmebaasidesse. 
    2. Kursus LinkedIn Learning'is: Data Science Foundations: Data Engineering.
    3. Artiklid:
    4. Video:

KokkuvÔte

Andmekvaliteet — see on vĂ€ga noor perspektiivne valdkond, mille osa olemine tĂ€hendab olla osa millestki suurest. Sisenedes Andmekvaliteedi maailma, sukeldute kaasaegsete nĂ”utud tehnoloogiate rohkusesse, kuid mis veelgi olulisem — avanevad tohutud vĂ”imalused oma ideede genereerimiseks ja elluviimiseks. Saate rakendada pideva tĂ€iustamise lĂ€henemist mitte ainult projektis, vaid ka enda jaoks, arendades pidevalt oma oskusi.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster