Tere kÔigile, minu nimi on Aleksander, ja ma olen andmekvaliteedi insener, kes tegeleb andmete kvaliteedi kontrollimisega. Selles artiklis rÀÀgin, kuidas ma siia jÔudsin ja miks 2020. aastal sai see testimise suundumus vÀga popiks.

Globaalne suundumus
TĂ€na toimub jĂ€lle tehnoloogiline revolutsioon, mille ĂŒheks aspektiks on erinevate ettevĂ”tete kasutamine kogutud andmete abil oma mĂŒĂŒgi, kasumi ja reklaami edendamiseks. NĂ€ib, et just kvaliteetsete andmete olemasolu ning osavate inimeste leidmine, kes suudavad neist raha teenida (Ă”ige töötlemine, visualiseerimine, masinĂ”ppe mudelite loomine jne), on tĂ€napĂ€eva jaoks paljude jaoks edu vĂ”ti. Kui 15-20 aastat tagasi tegelesid andmete kogumise ja monetiseerimisega peamiselt suured ettevĂ”tted, siis tĂ€na on see kĂ”ikide mĂ”istlike inimeste tegevus.
Seoses sellega muutus mitu aastat tagasi kogu maailmas tööotsinguportaalid ĂŒha rohkemate andmete teadlaste tööpakkumistega ĂŒle ujutatuks, kuna kĂ”ik olid veendunud, et sellise spetsialisti vĂ€rbamisega on vĂ”imalik luua suurepĂ€rane masinĂ”ppemudel, ennustada tulevikku ja teha ettevĂ”ttele "kvanthĂŒpe". Aja jooksul mĂ”istsid inimesed, et selline lĂ€henemine ei toimi peaaegu kusagil, kuna kaugelki kĂ”ik andmed, mis selliste spetsialistide kĂ€tte satuvad, ei sobi mudelite Ă”petamiseks.
Ja alustasid andmete teadlased kĂŒsimusi: âOstame veel andmeid nendelt ja nendeltâŠâ, âMeil pole andmeidâŠâ, âVaja on veel natuke andmeid, eelistatavalt kvaliteetseidâŠâ. Nendele pĂ€ringutele tuginedes hakkasid ettevĂ”tted, kellel on erinevad andmepaigad, looma mitmeid koostöösuhteid. Loomulikult nĂ”udis see protsessi tehnilist korraldust â andmeallikaga ĂŒhendust luua, andmed alla laadida, kontrollida, et need oleksid tĂ€ielikult laaditud jne. Selliste protsesside arv kasvas ning tĂ€naseks oleme saanud tohutu vajaduse teistsuguste spetsialistide â andmekvaliteedi inseneride â jĂ€rele, kes jĂ€lgiksid andmete voogu sĂŒsteemis (data pipelines), andmete kvaliteeti sisenemisel ja vĂ€ljamisel ning teeksid jĂ€reldusi nende piisavuse, terviklikkuse ja muude omaduste kohta.
Andmekvaliteedi inseneride trend jĂ”udis meieni USA-st, kus keegi ei ole valmis kaotama andmete lahingut kapitalismi Ă”itsva ajastu keskel. Allpool olen esitanud ekraanipildid kahest kĂ”ige populaarsemast tööotsingu saidist USA-s: ja â mille see andmed on kuupĂ€eval 17. mĂ€rts 2020 aastast, kajastades tööpakkumiste arvu, mis on seotud mĂ€rksĂ”nadega: Data Quality ja Data Scientist.
Andmeteadlased â 21416 tööpakkumist
Andmekvaliteet â 41104 tööpakkumist


Andmeteadlased â 404 tööpakkumist
Andmekvaliteet â 2020 tööpakkumist


On selge, et need ametid ei konkureeri omavahel. Screenshottidega tahtsin lihtsalt illustreerida praegust olukorda tööturul seoses Andmekvaliteedi inseneride nÔudlusega, mida on praegu palju rohkem kui Andmeteadlaste nÔudlust.
Juuni 2019. aastal eraldas EPAM, reageerides kaasaegse IT-turu vajadustele, Andmekvaliteedi suuna eraldi praktikaks. Andmekvaliteedi insenerid oma igapĂ€evases töös haldavad 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Ă”epoolest vaid piiratud aega klassikalisele funktsionaalsele testimisele, KUID see sĂ”ltub tugevalt projektist (nĂ€itena toon edasise).
Data Quality inseneri kohustused ei piirdu ainult rutiinsete kĂ€sitsi/automaatsete kontrollidega "nullide, koguste ja summade" osas andmebaasitabelites, vaid nĂ”uavad sĂŒgavat arusaamist kliendi Ă€ri vajadustest ja vastavalt vĂ”imetest muuta olemasolevad andmed kasutatavaks Ă€riinfoks.
Data Quality Teooria

Kuna me pĂŒĂŒame tĂ€ielikult mĂ”ista, milline on sellise inseneri roll, siis uurime, mis on Data Quality teoorias.
Data Quality on ĂŒks etappidest Data Managementis (koos terve maailma, mille uurimist jĂ€tame teile enda teha) ja vastutab andmete analĂŒĂŒsimise eest jĂ€rgmiste kriteeriumide alusel:

Ma arvan, et ei tasu iga punkti tĂ€pselt lahti seletada (teoorias nimetatakse neid "data dimensions"), need on pildil ĂŒsna selgelt kirjeldatud. Kuid testimisprotsess ei tĂ€henda nende omaduste range kopeerimise tegemist testikastidesse ja nende kontrollimist. Data Quality's, nagu igas teises testimise vormis, tuleb eeskĂ€tt lĂ€htuda andmekvaliteedi nĂ”uetest, mis on kooskĂ”lastatud projekti osalejatega, kes teevad Ă€riotsuseid.
Projekti iseloomust sĂ”ltuvalt vĂ”ib andmekvaliteedi insener tĂ€ita erinevaid rolle: alates tavalise automatiseeritud testija funktsioonist, kes hindab andmete kvaliteeti pinnapealselt, kuni inimeseni, kes viib lĂ€bi sĂŒvaintervjuusid ĂŒlaltoodud omaduste jĂ€rgi.
Andmehalduse, andmekvaliteedi ja sellega seotud protsesside vĂ€ga ĂŒksikasjalik kirjeldus on suurepĂ€raselt esitatud raamatus pealkirjaga âDAMA-DMBOK: Andmehalduse teadmusbaas: 2. vĂ€ljaanneâ. Soovitan seda raamatuid kui sisenemist sellesse teema (link leiate artikli lĂ”pus).
Minu lugu
IT-valdkonnas olen lĂ€binud teekonna Junior testijast tootmisettevĂ”tetes kuni Lead Data Quality Engineer'ini ettevĂ”ttes EPAM. Umbes kahe aasta pĂ€rast testijana töötades oli mul kindel veendumus, et tegin absoluutselt kĂ”iki tĂŒĂŒpe teste: regressiooniteste, funktsionaalseid teste, stressiteste, stabiilsusteste, turvateste, UI teste jne â ja proovisin hulgaliselt testimisriistu, töötades samal ajal kolmes programmeerimiskeeles: Java, Scala, Python.
Tagasi vaadates mĂ”istan, miks minu professionaalsete oskuste komplekt on saanud nii mitmekesiseks â olen osalenud projektides, mis on seotud andmete töötlemisega, olgu need siis suured vĂ”i vĂ€ikesed. See on toonud mind hulga tööriistade ja kasvuvĂ”imaluste maailma.
Uute teadmiste ja oskuste saamise tööriistade ja vÔimaluste mitmekesisuse hindamiseks piisab, kui heita pilk allolevale pildile, mis nÀitab kÔige populaarsemaid neist "Data & AI" maailmas.

Selliseid illustreerimisi koostab igal aastal tuntud riskikapitalist Matt Turck, kes on pÀrit tarkvaraarendusest. Siin on tema blogi ja , kus ta töötab partnerina.
Olen professionaalselt kasvanud eriti kiiresti, kui olin projektis ainus testija vĂ”i vĂ€hemalt projekti alguses. Just sel hetkel peab vastutama kogu testimisprotsessi eest ja taganemist ei ole, ainult edasi. Esialgu hirmutas see mind, kuid nĂŒĂŒd on kĂ”ik selle proovimise eelised mulle selged:
- Sa alustad suhtlemist kogu meeskonnaga nagu kunagi varem, sest pole ĂŒhtegi suunajat suhtlemiseks: ei testihaldurit, ega teste tegevaid kolleege.
- Projektis sĂŒvenemine muutub erakordselt sĂŒgavaks ning sa valdad teavet kĂ”igi komponentide kohta nii ĂŒldiselt kui ka ĂŒksikasjalikult.
- Arendajad ei vaata sinule kui âtestimise kutsele, kes ei tea, millega tegelebâ, vaid pigem kui vĂ”rdsusele, kes toob meeskonnale tohutut kasu oma automatiseeritud testidega ja suudab ette ennustada vigu toote konkreetses osas.
- Tulemuseks oled sa tÔhusam, kvalifitseeritum ja nÔutum.
Projektiga edenedes olen 100% juhtudest saanud mentoriks uutele testijatele, Ă”petanud neid ja jaganud nendega teadmisi, mida olen ise omandanud. Samas, sĂ”ltuvalt projektist, ei ole ma alati saanud juhtkonnalt kĂ”rgetasemelisi automaatkatsetamise spetsialiste ning on olnud vajalik kas koolitada neid automatiseerimisele (soovijatele) vĂ”i luua tööriistu nende igapĂ€evaste tegevuste toetamiseks (andmete genereerimise ja nende sĂŒsteemi laadimise tööriistad, koormustestimise/stabiilsuse testimise tööriist âkiireltâ jt).
Konkreetse projekti nÀide
Kahjuks ei saa ma konfidentsiaalsusnĂ”uete tĂ”ttu projektidest, millega olen töötanud, ĂŒksikasjalikult rÀÀkida, kuid toon vĂ€lja tĂŒĂŒpilisi Data Quality Engineer'i ĂŒlesandeid ĂŒhes projektis.
Projekti sisu â luua andmete ettevalmistamise platvorm, et koolitada masinĂ”ppimise mudelite alusel. Tellijaks oli suur Ameerika Ăhendriikide farmaatsiaettevĂ”te. Tehniliselt oli see klaster , mis tĂ”useb mitmekesiste mikroteenustega ja EPAMi avatud lĂ€htekoodiga projektiga, , mis on kohandatud konkreetse kliendi vajadustele (praegu on projekt taastatud ). ETL-protsessid korraldati abil ja andmeid liigutati kliendi sĂŒsteemist Bucketsisse. Edasi paigaldati platvormile Docker'i konteiner masin Ă”ppe mudelist, mis Ă”ppis vĂ€rsketel andmetel ning andis REST API liidese kaudu vĂ€lja ennustusi, mis olid huvitavad Ă€ri jaoks ja lahendasid konkreetseid ĂŒlesandeid.
Visuaalselt nÀgi kÔik vÀlja umbes nii:

Sellel projektil oli piisavalt funktsionaalset testimist ning arvestades funktsioonide arendamise kiirus ja vajadust sĂ€ilitada vĂ€ljaandmise tsĂŒkli tempot (kahe nĂ€dala sprindid), tuli kohe mĂ”elda kriitiliste sĂŒsteemi sĂ”lmede automaatse testimise peale. Suur osa platvormist, mille alus on Kubernetes, oli kaetud automaattestidega, mis on rakendatud + Python, kuid nende toetamine ja arendamine oli samuti vajalik. Lisaks lihtsustasime kliendi jaoks GUI loomist, et hallata masinĂ”ppemudeleid, mis oli paigaldatud klastrisse, samuti vĂ”imaldasime mÀÀrata, kust ja kuhu on vaja andmeid mudelite treenimiseks edastada. See ulatuslik lisa tĂ”i endaga kaasa automatiseeritud funktsionaalsete kontrollide laiendamise, millest suurem osa toimus REST API kĂ”nede kaudu ja vĂ€ikese hulga end-2-end UI-testide kaudu. Umbes liikumise keskel liitus meiega kĂ€sitsi testija, kes tegi suurepĂ€rast tööd tooteversioonide vastuvĂ”tutestimisel ning suhtlemisel kliendiga jĂ€rgmise vĂ€ljaande vastuvĂ”tu osas. Lisaks suutsime uue spetsialistiga meie tööd dokumenteerida ja lisada mitmeid vĂ€ga olulisi kĂ€sitsi kontrolle, mida oli alguses keeruline automatiseerida.
Ja lĂ”puks, pĂ€rast seda, kui oleme saavutanud platvormi ja GUI-lahenduse stabiilsuse, alustasime ETL-pipe-joonte loomist Apache Airflow DAGide abil. Andmekvaliteedi automatiseeritud kontroll viidi lĂ€bi spetsiaalsete Airflow DAGide kirjutamise kaudu, mis kontrollisid andmeid ETL-protsessi tulemuste pĂ”hjal. Selle projekti raames olime Ă”nnelikud, et tellija andis meile juurdepÀÀsu tundmatutele andmekogudele, millel me katsetasime. Kontrollisime andmeid rida-realt tĂŒĂŒpide vastavuse, vigaste andmete olemasolu, rekordite koguarvu enne ja pĂ€rast, vĂ”rreldes ETL-protsessi kĂ€igus teostatud muudatusi aggregatsiooni, veergude nimede muutmise ja muu osas. Lisaks laiendati neid kontrollimisi erinevatele andmeallikatele, nĂ€iteks SalesForce'i ja MySQL-i kĂ”rval.
LÔpliku andmekvaliteedi kontrollid viidi lÀbi juba S3 tasemel, kus need olid hoitud ja valmis mudelite masinÔppeks. Andmete saamiseks lÔplikust CSV-failist, mis asus S3 Buckets ja nende valideerimiseks, kirjutati kood kasutades .
Samuti oli tellija poolt nĂ”udmine hoida osa andmeid ĂŒhes S3 Bucketâis ja osa teises. Selleks oli samuti vajalik kirjutada tĂ€iendavaid kontrollimisi, mis jĂ€lgivad sellise sorteerimise usaldusvÀÀrsust.
Kogutud kogemus teistelt projektidelt
NĂ€ide kĂ”ige ĂŒldisemast tegevuste loetelust Data Quality insenerile:
- Valmistada ette testandmed (kehtivad, kehtetuks tunnistatud, suured, vÀikesed) automatiseeritud tööriista abil.
- Laadida ettevalmistatud andmekogum algsesse allikasse ja kontrollida selle kasutusvalmidust.
- KĂ€ivitada ETL-protsessid andmekogumi töötlemiseks algses hoidlasesse lĂ”plikku vĂ”i vahepealsesse koos teatud seadistuste kasutamisega (kui on vĂ”imalik mÀÀrata konfigureeritavad parameetrid ETL-ĂŒlesande jaoks).
- Verifitseerida ETL-protsessi töötlemised andmed nende kvaliteedi ja ÀrinÔuete tÀitmise kohta.
Peamine rĂ”hk kontrollidel ei tohiks olla mitte ainult andmevoo toimivusel sĂŒsteemis (mis on osa funktsionaalsest testimisest), vaid peamiselt andmete kontrollimisel ja valideerimisel vastavuses ootustele, anomaaliate tuvastamisel ja muul sellisel.
Tööriistad
Ăks sellise andmekontrolli tehnikaid vĂ”ib olla ahela kontrollide korraldamine iga andmete töötlemise etapi juures, mida tuntakse kirjanduses kui "data chain" â andmete kontroll allikast kuni lĂ”ppkasutuse punktini. Selliseid kontrollimisi teostatakse enamasti kontrollivate SQL-pĂ€ringute kirjutamise kaudu. Loomulikult peavad need pĂ€ringud olema maksimaalselt kerged ja kontrollima andmete kvaliteedi ĂŒksikuid osi (tabelite metaandmed, tĂŒhjad read, NULL-id, sĂŒntaksi vead â muud nĂ”utavad kontrollitavad atribuudid).
Regressioonitestimise korral, kus kasutatakse juba valmis (muutumatuid vĂ”i vaid veidi muudetud) andmekogumeid, vĂ”ivad automaatsete testide koodis olla salvestatud juba valmis andmete kvaliteedi kontrollimise mallid (oodatavate tabelite metaandmete kirjeldused; valikutes olevate ĂŒksuste kirjeldused, mida saab juhuslikult valida testi kĂ€igus, jne).
Testimise kĂ€igus tuleb samuti kirjutada testimisprotsesse ETL, kasutades selliseid raamistikke nagu Apache Airflow, vĂ”i hoopis musta kasti pilve tööriistu, nagu , ja teised. See olukord sunnib testimisinseneri sĂŒvenema ĂŒlaltoodud tööriistade toimimispĂ”himĂ”tetesse ning veelgi tĂ”husamalt teostama funktsionaalset testimist (nĂ€iteks projekti olemasolevate ETL-protsesside osas) ja kasutama neid andmete kontrollimiseks. Eriti Apache Airflow'i puhul on juba olemas lihtsalt kasutatavad operaatorid populaarsete analĂŒĂŒtiliste andmebaaside, nĂ€iteks . Selle kasutamise kĂ”ige pĂ”hjalikum nĂ€ide on juba esitatud, seega ei hakka ma uuesti kordama.
Lisaks valmislahendustele ei ole keegi takistanud teid oma meetodite ja tööriistade rakendamisel. See toob kasu mitte ainult projektile, vaid ka iseendale Data Quality Engineerâina, kes saab seelĂ€bi arendada oma tehnilisi teadmisi ja programmeerimisoskusi.
Kuidas see tegelikus projektis töötab
Hea illustratsioon ĂŒlaltoodud lĂ”ikude kohta 'data chain', ETL ja kĂ”ikjalolevatest kontrollidest on jĂ€rgmine protsess ĂŒhelt reaalsest projektist:

Siin saab meie sĂŒsteemi sisendisse erinevad andmed (loomulikult meie ettevalmistatud): kehtivad, kehtetuks tunnistatud, segatud jne., seejĂ€rel filtreeritakse need ja saadetakse vahehoidlasse, seejĂ€rel ootavad neid taas mitmed muudatused ja paigutatakse lĂ”pphoidlasse, kust omakorda tehakse analĂŒĂŒs, andmete vitriinide koostamine ja Ă€riliste teadlikkuste otsimine. Sellises sĂŒsteemis, kontrollimata ETL-protsesside funktsionaalsust, keskendume andmete kvaliteedile enne ja pĂ€rast muudatusi, samuti analĂŒĂŒsi vĂ€ljundis.
KokkuvĂ”ttes, olenemata kohtadest, kus olen töötanud, olin igal pool kaasatud Data-projektidesse, mis ĂŒhendasid jĂ€rgmised omadused:
- Automatiseerimise kaudu on vĂ”imalik testida teatud juhtumeid ja saavutada Ă€ri jaoks vastuvĂ”etav vabastamistsĂŒkkel.
- Sellise projekti testija on ĂŒks austatumaid meeskonna liikmeid, sest ta toob igaĂŒhele tohutut vÀÀrtust (testimise kiirus, head andmed andmete teadlase jaoks, defektide avastamine varaste etappide jooksul).
- Oluline pole, kas töötate oma riistvaraga vĂ”i pilves â kĂ”ik ressursid on abstraktsioonitud Hortonworksi, Cloudera, Mesos, Kubernetes jne tĂŒĂŒpi klastrisse.
- Projektid on ĂŒles ehitatud mikroteenuste pĂ”himĂ”ttele, kus domineerivad jaotatud ja paralleelsed arvutused.
Tahan rÔhutada, et andmekvaliteedi testimisega tegeledes suunab testimisspetsialist oma professionaalse fookuse toote koodile ja kasutatavatele tööriistadele.
Andmekvaliteedi testimise eripÀra
Lisaks olen vĂ€lja toonud jĂ€rgmised (ĂŒsna ĂŒldised ja eranditult subjektiivsed) iseloomulikud jooned andmetest (suured andmed) projektides (sĂŒsteemides) ja teistes valdkondades:

Kasulikud lingid
- Teooria: .
- Â EPAMÂ
- Soovitatavad materjalid alustavale andmekvaliteedi insenerile:
- Tasuta kursus Stepik'il:Â .Â
- Kursus LinkedIn Learning'is:Â .
- Artiklid:
- ;Â
- ;Â
- ;Â
- Â
- Video:
- ;
- ;
KokkuvÔte
Data Quality â see on vĂ€ga noor ja perspektiivikas suund, mille osaks olemine tĂ€hendab osalemist mingisuguses stardil. Sisenedes andmekvaliteeti, sukeldute te suurde hulka kaasaegsetesse nĂ”utud tehnoloogiatesse, kuid kĂ”ige tĂ€htsam â avanevad ees teile suured vĂ”imalused oma ideede genereerimiseks ja elluviimiseks. Saate rakendada pideva tĂ€iustamise lĂ€henemist mitte ainult projektis, vaid ka enda jaoks, arenedes pidevalt spetsialistina.
Allikas: habr.com
