Suurte ja väikeste andmete testija: trendid, teooria, minu lugu

Tere kõigile, minu nimi on Alexander ja ma olen andmekvaliteedi insener, kes kontrollib andmete kvaliteeti. See artikkel räägib sellest, kuidas ma selleni jõudsin ja miks 2020. aastal oli see testimisvaldkond laineharjal.

Suurte ja väikeste andmete testija: trendid, teooria, minu lugu

Globaalne trend

Tänapäeva maailmas on toimumas järjekordne tehnoloogiline revolutsioon, mille üheks aspektiks on akumuleeritud andmete kasutamine igasuguste ettevõtete poolt oma müügi, kasumi ja PR-i hooratta edendamiseks. Tundub, et nii heade (kvaliteetsete) andmete olemasolu kui ka osavad ajud, kes suudavad sellega raha teenida (õigesti töödelda, visualiseerida, masinõppemudeleid ehitada jne), on tänapäeval saanud paljude jaoks edu võtmeks. Kui 15-20 aastat tagasi tegelesid suured ettevõtted peamiselt intensiivse tööga andmete kogumise ja monetiseerimisega, siis tänapäeval on see peaaegu kõigi terve mõistusega inimeste pärusmaa.

Sellega seoses hakkasid mitu aastat tagasi kõik tööotsingutele pühendatud portaalid üle maailma täituma andmeteadlaste vabade töökohtadega, kuna kõik olid kindlad, et pärast sellise spetsialisti palkamist on võimalik ehitada masinõppe supermudel. , ennustada tulevikku ja teha ettevõtte jaoks "kvanthüpe". Aja jooksul mõistsid inimesed, et see lähenemine ei tööta peaaegu kunagi kusagil, kuna mitte kõik selliste spetsialistide kätte sattunud andmed ei sobi mudelite koolitamiseks.

Ja algasid andmeteadlaste päringud: “Ostame rohkem andmeid neilt ja neilt...”, “Meil pole piisavalt andmeid...”, “Vaja on veel andmeid, soovitavalt kvaliteetseid...” . Nende taotluste põhjal hakati looma arvukalt interaktsioone ettevõtete vahel, kes omavad üht või teist andmekogumit. Loomulikult nõudis see selle protsessi tehnilist korraldamist – andmeallikaga ühenduse loomist, selle allalaadimist, täieliku laadimise kontrollimist jne. Selliste protsesside arv hakkas kasvama ja tänapäeval on meil tohutu vajadus teist tüüpi andmete järele. spetsialistid - Andmekvaliteedi insenerid - need, kes jälgiksid andmete liikumist süsteemis (andmekonveierid), andmete kvaliteeti sisendis ja väljundis ning teeksid järeldusi nende piisavuse, terviklikkuse ja muude omaduste kohta.

Andmekvaliteedi inseneride trend jõudis meieni USA-st, kus keset märatsevat kapitalismi pole keegi valmis andmete pärast võitlust kaotama. Allpool olen esitanud ekraanipildid kahest USA kõige populaarsemast tööotsingu saidist: www.monster.com и www.dice.com — mis kuvab seisuga 17. märts 2020 andmeid saadetud postitatud vabade töökohtade arvu kohta, kasutades märksõnu: Data Quality ja Data Scientist.

www.monster.com

Andmeteadlased – 21416 vaba kohta
Andmete kvaliteet – 41104 vaba töökohta

Suurte ja väikeste andmete testija: trendid, teooria, minu lugu
Suurte ja väikeste andmete testija: trendid, teooria, minu lugu

www.dice.com

Data Scientists – 404 vaba kohta
Andmete kvaliteet – 2020 vabad töökohad

Suurte ja väikeste andmete testija: trendid, teooria, minu lugu
Suurte ja väikeste andmete testija: trendid, teooria, minu lugu

Ilmselgelt ei konkureeri need ametid omavahel kuidagi. Ekraanipiltidega tahtsin lihtsalt illustreerida praegust olukorda tööturul seoses andmekvaliteedi inseneride taotlustega, keda on praegu vaja palju rohkem kui Data Scientists.

2019. aasta juunis eraldas EPAM kaasaegse IT-turu vajadustele vastates Data Quality omaette praktikaks. Andmekvaliteedi insenerid oma igapäevatöö käigus haldavad andmeid, kontrollivad nende käitumist uutes tingimustes ja süsteemides, jälgivad andmete asjakohasust, piisavust ja asjakohasust. Kõige selle juures pühendavad andmekvaliteedi insenerid praktilises mõttes vähe aega klassikalisele funktsionaalsele testimisele, KUID see sõltub suuresti projektist (allpool toon näite).

Andmekvaliteedi inseneri kohustused ei piirdu ainult rutiinse käsitsi/automaatse kontrolliga andmebaasi tabelites nullide, loenduste ja summade osas, vaid eeldavad kliendi ärivajaduste sügavat mõistmist ja vastavalt ka võimet olemasolevaid andmeid teisendada kasulikku äriteavet.

Andmekvaliteedi teooria

Suurte ja väikeste andmete testija: trendid, teooria, minu lugu

Sellise inseneri rolli täielikumaks ettekujutamiseks mõelgem välja, mis on andmete kvaliteet teoreetiliselt.

Andmekvaliteet — üks andmehalduse etappidest (terve maailm, mille jätame teile iseseisvaks uurimiseks) ja vastutab andmete analüüsimise eest vastavalt järgmistele kriteeriumidele:

Suurte ja väikeste andmete testija: trendid, teooria, minu lugu
Ma arvan, et iga punkti dešifreerida pole vaja (teoreetiliselt nimetatakse neid "andmemõõtmeteks"), need on pildil üsna hästi kirjeldatud. Kuid testimisprotsess ise ei tähenda nende funktsioonide ranget kopeerimist testjuhtumitesse ja nende kontrollimist. Andmekvaliteedis, nagu ka igas teises testimises, tuleb eelkõige lähtuda andmekvaliteedi nõuetest, milles on kokku lepitud äriotsuseid tegevate projektis osalejatega.

Olenevalt Andmekvaliteedi projektist saab insener täita erinevaid funktsioone: alates tavalisest automaatikatestijast, kes hindab pealiskaudselt andmete kvaliteeti, kuni inimeseni, kes viib läbi andmete süvaprofiili vastavalt ülaltoodud kriteeriumidele.

Andmehalduse, andmekvaliteedi ja sellega seotud protsesside väga üksikasjalik kirjeldus on hästi kirjeldatud raamatus nimega "DAMA-DMBOK: andmehalduse teadmiste kogu: 2. väljaanne". Soovitan soojalt seda raamatut selle teema sissejuhatuseks (lingi sellele leiad artikli lõpust).

Minu lugu

IT-valdkonnas töötasin tootefirmade nooremtestijast juhtivaks andmekvaliteedi inseneriks EPAM-is. Pärast umbes kahte aastat testijana töötamist oli mul kindel veendumus, et olen teinud absoluutselt kõikvõimalikke teste: regressiooni-, funktsionaalseid, stressi-, stabiilsus-, turva-, kasutajaliidese jne - ja proovinud paljusid testimistööriistu. töötas samal ajal kolmes programmeerimiskeeles: Java, Scala, Python.

Tagantjärele mõeldes saan aru, miks minu oskuste kogum oli nii mitmekesine – osalesin suurte ja väikeste andmepõhistes projektides. Just see viis mind maailma, kus on palju tööriistu ja kasvuvõimalusi.

Et hinnata erinevaid tööriistu ja võimalusi uute teadmiste ja oskuste omandamiseks, vaadake lihtsalt allolevat pilti, mis näitab "Data & AI" maailmas kõige populaarsemaid.

Suurte ja väikeste andmete testija: trendid, teooria, minu lugu
Sellise illustratsiooni koostab igal aastal üks kuulsatest riskikapitalistidest Matt Turck, kes on pärit tarkvaraarendusest. Siin link oma blogisse ja riskikapitalifirma, kus ta töötab partnerina.

Eriti kiiresti kasvasin tööalaselt siis, kui olin projekti ainuke testija või vähemalt projekti alguses. Just sel hetkel pead vastutama kogu testimisprotsessi eest ja sul pole võimalust taganeda, vaid edasi. Alguses oli see hirmutav, kuid nüüd on kõik sellise testi eelised minu jaoks ilmsed:

  • Hakkate kogu meeskonnaga suhtlema nagu ei kunagi varem, kuna suhtlemiseks pole puhverserverit: ei testijuht ega kaastestijad.
  • Sukeldumine projekti muutub uskumatult sügavaks ja teil on teave kõigi komponentide kohta nii üldiselt kui ka üksikasjalikult.
  • Arendajad ei vaata sind kui "testimise meest, kes ei tea, mida ta teeb", vaid pigem kui võrdväärset, kes toodab oma automatiseeritud testidega meeskonnale uskumatut kasu ja eeldab, et vead ilmuvad konkreetses komponendis. toode.
  • Selle tulemusena olete tõhusam, kvalifitseeritum ja nõutum.

Projekti kasvades sain 100% juhtudest uute testijate mentoriks, õpetades neid ja andes edasi enda õpitud teadmisi. Samas ei saanud ma olenevalt projektist juhtkonnalt alati kõige kõrgemal tasemel autotestimise spetsialiste ja tekkis vajadus neid kas automatiseerimise alal koolitada (huvilistele) või luua tööriistu igapäevatoimingutes kasutamiseks (tööriistad). andmete genereerimiseks ja süsteemi laadimiseks, tööriist koormustestide/stabiilsuse testimise "kiireks" tegemiseks jne).

Näide konkreetsest projektist

Kahjuks ei saa ma mitteavaldamise kohustuse tõttu täpsemalt rääkida projektidest, millega tegelesin, kuid toon näiteid andmekvaliteediinseneri tüüpilistest tööülesannetest ühe projekti juures.

Projekti sisuks on selle põhjal masinõppemudelite koolitamiseks mõeldud andmete ettevalmistamise platvormi juurutamine. Tellijaks oli USA suur ravimifirma. Tehniliselt oli see klaster Kubernetes, tõuseb AWS EC2 eksemplare koos mitme mikroteenuse ja selle aluseks oleva EPAM-i avatud lähtekoodiga projektiga - Leegion, kohandatud konkreetse kliendi vajadustele (nüüdseks on projekt uuesti sündinud odahu). ETL protsessid korraldati kasutades Apache õhuvool ja teisaldasid andmed kohast SalesForce kliendisüsteemid sisse AWS S3 Ämbrid. Järgmisena juurutati platvormile masinõppemudeli Dockeri pilt, mida koolitati värskete andmete põhjal ja mis REST API liidese abil koostas ettevõttele huvipakkuvaid ennustusi ja lahendas konkreetseid probleeme.

Visuaalselt nägi kõik välja umbes selline:

Suurte ja väikeste andmete testija: trendid, teooria, minu lugu
Sellel projektil oli palju funktsionaalseid testimisi ning arvestades funktsioonide arendamise kiirust ja vajadust säilitada väljalasketsükli tempot (kahenädalased spurdid), tuli kohe mõelda kõige kriitilisemate komponentide testimise automatiseerimisele. süsteem. Suurem osa Kubernetesel põhinevast platvormist kaeti aastal juurutatud automaattestidega Roboti raamistik + Python, aga vaja oli ka neid toetada ja laiendada. Lisaks loodi kliendi mugavuse huvides klastrisse juurutatud masinõppemudelite haldamiseks GUI, samuti võimalus määrata, kuhu ja kuhu mudelite koolitamiseks andmeid üle kanda. See ulatuslik lisamine tõi kaasa automatiseeritud funktsionaalse testimise laiendamise, mida tehti enamasti REST API-kõnede ja väikese arvu 2-otsa kasutajaliidese testide kaudu. Kogu selle liikumise ekvaatori ümber liitus meiega käsitsi testija, kes tegi suurepärast tööd tooteversioonide vastuvõtutestimisega ja suhtles kliendiga järgmise väljalase vastuvõtmise asjus. Lisaks saime tänu uue spetsialisti tulekule oma tööd dokumenteerida ja lisada mitu väga olulist käsitsi kontrollimist, mida oli kohe raske automatiseerida.

Ja lõpuks, pärast seda, kui saavutasime platvormi ja selle GUI lisandmooduli abil stabiilsuse, alustasime ETL-i torujuhtmete ehitamist Apache Airflow DAG-ide abil. Automatiseeritud andmekvaliteedi kontroll viidi läbi spetsiaalsete Airflow DAG-ide kirjutamisega, mis kontrollisid andmeid ETL protsessi tulemuste põhjal. Selle projekti raames meil vedas ja klient andis meile juurdepääsu anonüümsetele andmekogumitele, mida testisime. Kontrollisime ridade kaupa andmestiku vastavust tüüpidele, katkiste andmete olemasolu, kirjete koguarvu enne ja pärast, ETL protsessiga tehtud teisenduste võrdlemist liitmiseks, veergude nimede muutmist ja muud. Lisaks skaleeriti need kontrollid erinevatele andmeallikatele, näiteks lisaks SalesForce'ile ka MySQL-ile.

Lõplikud andmekvaliteedi kontrollid viidi läbi juba S3 tasemel, kus need salvestati ja olid kasutusvalmis masinõppemudelite koolitamiseks. S3 ämbris asuvast lõplikust CSV-failist andmete saamiseks ja selle kinnitamiseks kirjutati kood kasutades boto3 kliendid.

Samuti oli kliendi nõue salvestada osa andmetest ühte S3 ämbrisse ja osa teise. See nõudis ka täiendavate kontrollide kirjutamist, et kontrollida sellise sorteerimise usaldusväärsust.

Üldine kogemus teistest projektidest

Näide andmekvaliteedi inseneri tegevuste kõige üldisemast loendist:

  • Valmistage ette testiandmed (kehtivad kehtetud suur väike) automaatse tööriista abil.
  • Laadige ettevalmistatud andmekogum üles algallikasse ja kontrollige, kas see on kasutusvalmis.
  • Käivitage ETL-i protsessid andmekogumi töötlemiseks lähtemälust lõpp- või vahemällu, kasutades teatud seadistuste komplekti (võimaluse korral määrake ETL-ülesande jaoks konfigureeritavad parameetrid).
  • Kontrollige ETL protsessis töödeldavate andmete kvaliteeti ja vastavust ärinõuetele.

Samas ei peaks kontrollide põhifookus olema ainult sellel, et andmevoog süsteemis on põhimõtteliselt toiminud ja jõudnud lõpuni (mis on osa funktsionaalsest testimisest), vaid eelkõige andmete kontrollimisel ja kinnitamisel. eeldatavate nõuete täitmiseks, kõrvalekallete tuvastamiseks ja muuks.

Töövahendid

Üks sellise andmekontrolli tehnikatest võib olla ahelkontrolli korraldamine andmetöötluse igas etapis, kirjanduses nn andmeahel - andmete kontroll allikast lõppkasutuspunktini. Seda tüüpi kontrolle rakendatakse enamasti kontrollivate SQL-päringute kirjutamise teel. On selge, et sellised päringud peaksid olema võimalikult kerged ja kontrollima üksikute andmete kvaliteeti (tabelite metaandmed, tühjad read, NULL-id, vead süntaksis - muud kontrollimiseks vajalikud atribuudid).

Regressioonitesti puhul, mis kasutab valmis (muutmatuid, veidi muudetavaid) andmekogumeid, saab automaattesti koodi salvestada valmis mallid andmete kvaliteedile vastavuse kontrollimiseks (eeldatavate tabeli metaandmete kirjeldused; rea näidisobjektid, mida saab valitud katse ajal juhuslikult jne).

Samuti peate testimise ajal kirjutama ETL-i testimisprotsesse, kasutades selliseid raamistikke nagu Apache Airflow, Apache Spark või isegi musta kasti pilve tüüpi tööriist GCP Dataprep, GCP andmevoog Ja nii edasi. See asjaolu sunnib testimisinseneri süvenema ülaltoodud tööriistade tööpõhimõtetesse ja veelgi tõhusamalt läbi viima funktsionaalseid testimisi (näiteks projektis olemasolevad ETL protsessid) ja kasutama neid andmete kontrollimiseks. Eelkõige on Apache Airflow'l valmis operaatorid näiteks populaarsete analüütiliste andmebaasidega töötamiseks GCP BigQuery. Kõige elementaarsem näide selle kasutamisest on juba välja toodud siin, nii et ma ei korda ennast.

Peale valmislahenduste ei keela keegi rakendada oma tehnikaid ja tööriistu. See pole kasulik mitte ainult projektile, vaid ka andmekvaliteediinsenerile endale, kes parandab seeläbi oma tehnilist silmaringi ja kodeerimisoskusi.

Kuidas see reaalse projekti puhul töötab

Hea näide viimastest lõikudest "andmeahela", ETL-i ja üldlevinud kontrollide kohta on järgmine protsess ühest tegelikust projektist:

Suurte ja väikeste andmete testija: trendid, teooria, minu lugu

Siin sisenevad mitmesugused andmed (loomulikult meie poolt koostatud) meie süsteemi sisendlehtrisse: kehtiv, kehtetu, segatud jne, seejärel need filtreeritakse ja satuvad vahemällu, seejärel läbivad need uuesti rea teisendusi. ja paigutatakse lõppmälu , kust omakorda teostatakse analüüsi, andmemarsside loomist ja äriülevaadete otsimist. Sellises süsteemis, ilma ETL-protsesside toimimist funktsionaalselt kontrollimata, keskendume andmete kvaliteedile enne ja pärast teisendusi, samuti väljundile analüütikasse.

Ülaltoodu kokkuvõtteks, olenemata töökohtadest, osalesin kõikjal andmeprojektides, millel olid järgmised funktsioonid:

  • Ainult automatiseerimise abil saate mõnda juhtumit testida ja saavutada ettevõttele vastuvõetava vabastamistsükli.
  • Sellise projekti testija on meeskonna üks hinnatumaid liikmeid, kuna see toob igale osalejale suurt kasu (testimise kiirendamine, head andmed Data Scientistilt, defektide tuvastamine varases staadiumis).
  • Pole vahet, kas töötate oma riistvaraga või pilvedes – kõik ressursid koondatakse klastrisse, nagu Hortonworks, Cloudera, Mesos, Kubernetes jne.
  • Projektid on üles ehitatud mikroteenuste lähenemisviisile, domineerivad hajutatud ja paralleelsed andmetöötlused.

Tahaksin märkida, et andmekvaliteedi valdkonna testimist tehes suunab testimisspetsialist oma professionaalse fookuse toote koodile ja kasutatavatele tööriistadele.

Andmekvaliteedi testimise eristavad omadused

Lisaks olen enda jaoks tuvastanud järgmised (teen kohe reservatsiooni, et need on VÄGA üldistatud ja eranditult subjektiivsed) andme (Big Data) projektides (süsteemides) ja muudes valdkondades testimise eripära:

Suurte ja väikeste andmete testija: trendid, teooria, minu lugu

Kasulikud lingid

  1. Teooria: DAMA-DMBOK: Andmehaldus teadmiste kogum: 2. väljaanne.
  2. Treenimiskeskus EPAM 
  3. Soovitatavad materjalid alustavale andmekvaliteedi insenerile:
    1. Stepiku tasuta kursus: Sissejuhatus andmebaasidesse
    2. Kursus LinkedIn Learningist: Andmeteaduse alused: andmetehnoloogia.
    3. Artiklid:
    4. Video:

Järeldus

Andmekvaliteet on väga noor paljutõotav suund, millest osa saada tähendab olla osa startupist. Kui olete andmekvaliteedis, sukeldute paljudesse kaasaegsetesse ja nõutavatesse tehnoloogiatesse, kuid mis kõige tähtsam, teile avanevad tohutud võimalused oma ideede genereerimiseks ja elluviimiseks. Pideva täiustamise lähenemisviisi saate kasutada mitte ainult projektis, vaid ka enda jaoks, arenedes pidevalt spetsialistina.

Allikas: www.habr.com

Lisa kommentaar