Granda kaj malgranda datumprovilo: tendencoj, teorio, mia rakonto

Saluton al ĉiuj, mia nomo estas Aleksandro, kaj mi estas inĝeniero pri Datumkvalito, kiu kontrolas datumojn por ĝia kvalito. Ĉi tiu artikolo parolos pri kiel mi venis al ĉi tio kaj kial en 2020 ĉi tiu areo de testado estis sur la kresto de ondo.

Granda kaj malgranda datumprovilo: tendencoj, teorio, mia rakonto

Tutmonda tendenco

La hodiaŭa mondo spertas alian teknologian revolucion, unu aspekto de kiu estas la uzo de amasigitaj datumoj fare de ĉiaj kompanioj por antaŭenigi sian propran volanton de vendoj, profitoj kaj PR. Ŝajnas, ke la ĉeesto de bonaj (kvalitaj) datumoj, same kiel lertaj cerboj, kiuj povas gajni monon el ĝi (ĝuste prilabori, bildigi, konstrui maŝinlernajn modelojn ktp.), fariĝis la ŝlosilo de sukceso por multaj hodiaŭ. Se antaŭ 15-20 jaroj grandaj kompanioj ĉefe okupiĝis pri intensa laboro kun datumamasiĝo kaj monetigo, hodiaŭ ĉi tio estas la sorto de preskaŭ ĉiuj prudentaj homoj.

Ĉi-rilate, antaŭ kelkaj jaroj, ĉiuj portaloj dediĉitaj al laborserĉoj tra la mondo komencis pleniĝi per vakantaĵoj de Data Scientist, ĉar ĉiuj estis certaj, ke, dunginte tian specialiston, ili povas konstrui supermodelon de maŝinlernado, antaŭdiri la estontecon. kaj fari "kvantuman salton" por la firmao. Kun la tempo, homoj rimarkis, ke ĉi tiu aliro preskaŭ neniam funkcias ie ajn, ĉar ne ĉiuj datumoj, kiuj falas en la manojn de tiaj specialistoj, taŭgas por trejnado de modeloj.

Kaj petoj de Datumsciencistoj komenciĝis: "Ni aĉetu pli da datumoj de ĉi tiuj kaj tiuj...", "Ni ne havas sufiĉe da datumoj...", "Ni bezonas pliajn datumojn, prefere altkvalitan..." . Surbaze de ĉi tiuj petoj, multaj interagoj komencis esti konstruitaj inter kompanioj, kiuj posedas unu aŭ alian aron de datumoj. Kompreneble, tio postulis la teknikan organizon de ĉi tiu procezo - konektiĝi al la datumfonto, elŝuti ĝin, kontroli ke ĝi estis plene ŝarĝita, ktp. La nombro da tiaj procezoj komencis kreski, kaj hodiaŭ ni havas grandegan bezonon de alia speco de specialistoj - Datumkvalito-inĝenieroj - tiuj, kiuj monitorus la fluon de datumoj en la sistemo (datumoj), la kvaliton de datumoj ĉe la enigo kaj eligo, kaj eltiris konkludojn pri sia sufiĉo, integreco kaj aliaj trajtoj.

La tendenco por Data Quality-inĝenieroj venis al ni el Usono, kie, meze de la furioza epoko de kapitalismo, neniu pretas perdi la batalon por datumoj. Malsupre mi provizis ekrankopiojn de du el la plej popularaj laborserĉaj retejoj en Usono: www.monster.com и www.dice.com — kiu montras datumojn de la 17-a de marto 2020 pri la nombro da afiŝitaj vakantaĵoj ricevitaj per la ŝlosilvortoj: Datuma Kvalito kaj Datuma Sciencisto.

www.monster.com

Datumsciencistoj - 21416 vakantaĵoj
Datuma Kvalito - 41104 vakantaĵoj

Granda kaj malgranda datumprovilo: tendencoj, teorio, mia rakonto
Granda kaj malgranda datumprovilo: tendencoj, teorio, mia rakonto

www.dice.com

Datumsciencistoj - 404 vakantaĵoj
Datuma Kvalito - 2020-vakantaĵoj

Granda kaj malgranda datumprovilo: tendencoj, teorio, mia rakonto
Granda kaj malgranda datumprovilo: tendencoj, teorio, mia rakonto

Evidente, ĉi tiuj profesioj neniel konkuras unu kun la alia. Per ekrankopioj, mi nur volis ilustri la nunan situacion sur la labormerkato laŭ petoj por Data Quality-inĝenieroj, el kiuj multe pli bezonas nun ol Datumsciencistoj.

En junio 2019, EPAM, respondante al la bezonoj de la moderna IT-merkato, apartigis Datuman Kvaliton en apartan praktikon. Inĝenieroj pri Datumkvalito, dum sia ĉiutaga laboro, administras datumojn, kontrolas ĝian konduton en novaj kondiĉoj kaj sistemoj, kontrolas la gravecon de la datumoj, ĝian sufiĉon kaj gravecon. Kun ĉio ĉi, en praktika signifo, Data Quality-inĝenieroj vere dediĉas malmulte da tempo al klasika funkcia testado, SIN tio multe dependas de la projekto (mi donos ekzemplon sube).

La respondecoj de inĝeniero pri Datumkvalito ne estas limigitaj nur al rutinaj manaj/aŭtomataj kontroloj por "nuloj, kalkuloj kaj sumoj" en datumbazaj tabeloj, sed postulas profundan komprenon de la komercaj bezonoj de la kliento kaj, sekve, la kapablon transformi disponeblajn datumojn en la datumbazon. utilaj komercaj informoj.

Teorio pri Datuma Kvalito

Granda kaj malgranda datumprovilo: tendencoj, teorio, mia rakonto

Por pli plene imagi la rolon de tia inĝeniero, ni eltrovu, kio estas teorie pri Datuma Kvalito.

Datumoj Kvalito — unu el la etapoj de Datuma Administrado (tuta mondo, kiun ni lasos al vi memstudi) kaj respondecas pri analizo de datumoj laŭ la jenaj kriterioj:

Granda kaj malgranda datumprovilo: tendencoj, teorio, mia rakonto
Mi pensas, ke ne necesas deĉifri ĉiun el la punktoj (teorie ili nomiĝas "datumaj dimensioj"), ili estas sufiĉe bone priskribitaj en la bildo. Sed la testa procezo mem ne implicas strikte kopii ĉi tiujn funkciojn en testajn kazojn kaj kontroli ilin. En Datumkvalito, kiel en iu ajn alia speco de testado, necesas, antaŭ ĉio, konstrui sur la datumkvalitopostuloj interkonsentitaj kun la projektpartoprenantoj kiuj faras komercajn decidojn.

Depende de la Data Quality-projekto, inĝeniero povas plenumi malsamajn funkciojn: de ordinara aŭtomatiga testilo kun supraĵa takso de datumkvalito, ĝis persono, kiu faras profundan profiladon de la datumoj laŭ la supraj kriterioj.

Tre detala priskribo de la Datuma Administrado, Datuma Kvalito kaj rilataj procezoj estas bone priskribita en la libro nomita "DAMA-DMBOK: Datumadministrada Korpo de Scio: dua Eldono". Mi tre rekomendas ĉi tiun libron kiel enkondukon al ĉi tiu temo (vi trovos ligilon al ĝi fine de la artikolo).

Mia historio

En la IT-industrio, mi supreniris de Juniora testilo en produktaj kompanioj al Ĉefa Datuma Kvalita Inĝeniero ĉe EPAM. Post ĉirkaŭ du jaroj da laboro kiel testinto, mi havis la firman konvinkon, ke mi faris absolute ĉiajn provojn: regresan, funkcian, streĉan, stabilecon, sekurecon, UI, ktp. - kaj provis grandan nombron da testaj iloj, havante laboris samtempe en tri programlingvoj: Java, Scala, Python.

Rerigardante, mi komprenas kial mia lerteco estis tiel diversa—mi estis implikita en datum-movitaj projektoj, grandaj kaj malgrandaj. Jen kio alportis min en mondon de multaj iloj kaj ŝancoj por kresko.

Por aprezi la diversajn ilojn kaj ŝancojn akiri novajn sciojn kaj kapablojn, nur rigardu la suban bildon, kiu montras la plej popularajn en la mondo "Datumoj kaj AI".

Granda kaj malgranda datumprovilo: tendencoj, teorio, mia rakonto
Ĉi tiu speco de ilustraĵo estas kompilita ĉiujare de unu el la famaj riskkapitalistoj Matt Turck, kiu venas de programaro-disvolviĝo. Jen ligilo al lia blogo kaj riskkapitala firmao, kie li laboras kiel partnero.

Mi kreskis profesie precipe rapide kiam mi estis la sola testilo en la projekto, aŭ almenaŭ komence de la projekto. Estas en tia momento, ke vi devas respondeci pri la tuta testa procezo, kaj vi ne havas ŝancon retiriĝi, nur antaŭen. Komence ĝi estis timiga, sed nun ĉiuj avantaĝoj de tia testo estas evidentaj al mi:

  • Vi komencas komuniki kun la tuta teamo kiel neniam antaŭe, ĉar ne ekzistas prokurilo por komunikado: nek la testmanaĝero nek kuntestantoj.
  • La mergo en la projekto fariĝas nekredeble profunda, kaj vi havas informojn pri ĉiuj komponantoj, kaj ĝenerale kaj detale.
  • Programistoj ne rigardas vin kiel "tiu ulo de testado, kiu ne scias, kion li faras", sed prefere kiel egalulo, kiu produktas nekredeblajn avantaĝojn por la teamo per siaj aŭtomatigitaj testoj kaj antaŭvido de cimoj aperantaj en specifa komponanto de la teamo. produkto.
  • Kiel rezulto, vi estas pli efika, pli kvalifikita kaj pli postulata.

Dum la projekto kreskis, en 100% de kazoj mi fariĝis mentoro por novaj testantoj, instruante ilin kaj transdonante la sciojn, kiujn mi mem lernis. Samtempe, depende de la projekto, mi ne ĉiam ricevis la plej altan nivelon de aŭtotestaj specialistoj de administrado kaj estis bezono aŭ trejni ilin pri aŭtomatigo (por interesitoj) aŭ krei ilojn por uzado en ĉiutagaj agadoj (iloj. por generi datumojn kaj ŝarĝi ilin en la sistemon, ilo por fari ŝarĝtestadon/stabilectestadon "rapide", ktp.).

Ekzemplo de specifa projekto

Bedaŭrinde, pro nediskonigo, mi ne povas detale paroli pri la projektoj, pri kiuj mi laboris, sed mi donos ekzemplojn de tipaj taskoj de Data Quality Engineer pri unu el la projektoj.

La esenco de la projekto estas efektivigi platformon por prepari datumojn por trejnado de maŝinlernado de modeloj bazitaj sur ĝi. La kliento estis granda farmacia kompanio el Usono. Teknike ĝi estis areto Kubernetoj, leviĝanta al AWS EC2 okazoj, kun pluraj mikroservoj kaj la subesta Open Source projekto de EPAM - legio, adaptita al la bezonoj de specifa kliento (nun la projekto renaskiĝis en odahu). ETL-procezoj estis organizitaj uzante apaĉa aerfluo kaj movis datumojn de SalesForce klientsistemoj en AWS S3 Siteloj. Poste, bildo de Docker de maŝinlernado-modelo estis deplojita sur la platformon, kiu estis trejnita sur freŝaj datumoj kaj, uzante la REST API-interfacon, produktis prognozojn kiuj interesis la komercon kaj solvis specifajn problemojn.

Vide ĉio aspektis kiel ĉi tio:

Granda kaj malgranda datumprovilo: tendencoj, teorio, mia rakonto
Estis multe da funkciaj provoj en ĉi tiu projekto, kaj pro la rapideco de evoluigo de funkcioj kaj la bezono konservi la ritmon de la eldonciklo (du-semajnaj sprintoj), necesis tuj pensi pri aŭtomatigo de testado de la plej kritikaj komponantoj de la sistemo. Plejparto de la Kubernetes-bazita platformo mem estis kovrita per aŭtotestoj efektivigitaj en Robota Kadro + Python, sed ankaŭ necesis subteni kaj vastigi ilin. Krome, por la oportuno de la kliento, GUI estis kreita por administri maŝinlernajn modelojn deplojitajn al la areto, same kiel la kapablon specifi kie kaj kie datumoj devas esti transdonitaj por trejnado de la modeloj. Ĉi tiu ampleksa aldono kaŭzis vastiĝon de aŭtomatigita funkcia testado, kiu estis plejparte farita per REST API-vokoj kaj malgranda nombro da fin-2-finaj UI-testoj. Ĉirkaŭ la ekvatoro de ĉi tiu tuta movado, aliĝis al ni mana testilo, kiu faris bonegan laboron kun akcepto-testado de produktaj versioj kaj komuniki kun la kliento pri la akcepto de la sekva eldono. Krome, pro la alveno de nova specialisto, ni povis dokumenti nian laboron kaj aldoni plurajn tre gravajn manajn kontrolojn, kiuj estis malfacile aŭtomatigeblaj tuj.

Kaj finfine, post kiam ni atingis stabilecon de la platformo kaj la GUI-aldonaĵo super ĝi, ni komencis konstrui ETL-duktojn uzante Apache Airflow DAG-ojn. Aŭtomatigita datenkvalita kontrolo estis farita skribante specialajn Airflow DAG-ojn, kiuj kontrolis la datumojn surbaze de la rezultoj de la ETL-procezo. Kadre de ĉi tiu projekto, ni estis bonŝancaj kaj la kliento donis al ni aliron al anonimigitaj datumaj aroj, sur kiuj ni testis. Ni kontrolis la datumlinion post linio por konformeco al tipoj, la ĉeesto de rompitaj datumoj, la totala nombro da rekordoj antaŭ kaj post, komparo de transformoj faritaj de la ETL-procezo por agregado, ŝanĝado de kolonnomoj kaj aliaj aferoj. Krome, ĉi tiuj ĉekoj estis skalitaj al malsamaj datumfontoj, ekzemple, krom SalesForce, ankaŭ al MySQL.

Finaj datumaj kvalitkontroloj estis faritaj jam ĉe la S3-nivelo, kie ili estis stokitaj kaj estis pretaj por uzi por trejnado de maŝinlernado-modeloj. Por akiri datumojn de la fina CSV-dosiero situanta sur la S3 Bucket kaj validigi ĝin, kodo estis skribita uzante boto3 klientoj.

Ankaŭ estis postulo de la kliento stoki parton de la datumoj en unu S3 Bucket kaj parton en alia. Tio ankaŭ postulis verki kromajn ĉekojn por kontroli la fidindecon de tia ordigo.

Ĝeneraligita sperto de aliaj projektoj

Ekzemplo de la plej ĝenerala listo de agadoj de inĝeniero pri Datuma Kvalito:

  • Preparu testajn datumojn (validajn nevalidajn grandajn malgrandajn) per aŭtomata ilo.
  • Alŝutu la pretan datuman aron al la origina fonto kaj kontrolu, ke ĝi estas preta por uzo.
  • Lanĉu ETL-procezojn por prilaborado de aro da datumoj de la fontostokado ĝis la fina aŭ meza stokado uzante certan aron da agordoj (se eble, agordu agordeblajn parametrojn por la ETL-tasko).
  • Kontrolu datumojn prilaboritajn de la ETL-procezo por ĝia kvalito kaj konformeco al komercaj postuloj.

Samtempe, la ĉefa fokuso de kontroloj devus esti ne nur sur la fakto, ke la datumfluo en la sistemo, principe, funkciis kaj atingis la finon (kiu estas parto de funkcia testado), sed plejparte pri kontrolado kaj validigo de datumoj. por plenumo de atendataj postuloj, identigado de anomalioj kaj aliaj aferoj.

Iloj

Unu el la teknikoj por tia datumkontrolo povas esti la organizo de ĉenkontroloj en ĉiu etapo de datumtraktado, la tielnomita "datumĉeno" en la literaturo - kontrolo de datumoj de la fonto ĝis la punkto de fina uzo. Ĉi tiuj specoj de kontroloj estas plej ofte efektivigitaj skribante kontrolajn SQL-demandojn. Estas klare, ke tiaj demandoj devus esti kiel eble plej malpezaj kaj kontroli individuajn pecojn de datumkvalito (tabelaj metadatumoj, malplenaj linioj, NULL-oj, Eraroj en sintakso - aliaj atributoj necesaj por kontrolado).

En la kazo de regrestestado, kiu uzas pretajn (neŝanĝeblajn, iomete ŝanĝeblajn) datumseriojn, la aŭtotestkodo povas stoki pretajn ŝablonojn por kontrolado de datenoj por konformeco kun kvalito (priskriboj de atendataj tabelmetadatenoj; vicaj specimenobjektoj kiuj povas esti elektita hazarde dum la testo, ktp.).

Ankaŭ, dum testado, vi devas skribi ETL-testprocezojn uzante kadrojn kiel Apache Airflow, Apache Spark aŭ eĉ nigra-skatola nubo-tipa ilo GCP Dataprep, GCP Dataflow Kaj tiel plu. Ĉi tiu cirkonstanco devigas la testan inĝenieron mergi sin en la principoj de funkciado de la supraj iloj kaj eĉ pli efike ambaŭ fari funkciajn provojn (ekzemple, ekzistantajn ETL-procezojn en projekto) kaj uzi ilin por kontroli datumojn. Aparte, Apache Airflow havas pretajn funkciigistojn por labori kun popularaj analizaj datumbazoj, ekzemple GCP BigQuery. La plej baza ekzemplo de ĝia uzo jam estis skizita tie, do mi ne ripetos min.

Krom pretaj solvoj, neniu malpermesas al vi efektivigi viajn proprajn teknikojn kaj ilojn. Ĉi tio ne nur estos utila por la projekto, sed ankaŭ por la Datuma Kvalito-Inĝeniero mem, kiu per tio plibonigos siajn teknikajn horizontojn kaj kodigajn kapablojn.

Kiel ĝi funkcias en reala projekto

Bona ilustraĵo de la lastaj alineoj pri la "datumĉeno", ETL kaj ĉieaj kontroloj estas la sekva procezo de unu el la realaj projektoj:

Granda kaj malgranda datumprovilo: tendencoj, teorio, mia rakonto

Ĉi tie diversaj datumoj (nature, preparitaj de ni) eniras la enigaĵon "funelo" de nia sistemo: validaj, nevalidaj, miksitaj, ktp., tiam ili estas filtritaj kaj finiĝas en meza stokado, poste ili denove suferas serion da transformoj. kaj estas metitaj en la fina stokado, de kiu, siavice, analizo, konstruado de datumvendejoj kaj serĉado de komercaj komprenoj estos efektivigitaj. En tia sistemo, sen funkcie kontroli la funkciadon de ETL-procezoj, ni koncentriĝas pri la kvalito de datumoj antaŭ kaj post transformoj, kaj ankaŭ pri la eligo al analizo.

Por resumi la supre, sendepende de la lokoj kie mi laboris, ĉie mi estis implikita en Datumaj projektoj kiuj kunhavis la sekvajn funkciojn:

  • Nur per aŭtomatigo vi povas testi iujn kazojn kaj atingi eldonciklon akcepteblan por la komerco.
  • Testisto pri tia projekto estas unu el la plej respektataj membroj de la teamo, ĉar ĝi alportas grandajn avantaĝojn al ĉiu el la partoprenantoj (akcelo de testado, bonaj datumoj de la Data Scientist, identigo de difektoj en la fruaj stadioj).
  • Ne gravas ĉu vi laboras per via propra aparataro aŭ en la nuboj - ĉiuj rimedoj estas abstraktitaj en areton kiel Hortonworks, Cloudera, Mesos, Kubernetes, ktp.
  • Projektoj estas konstruitaj laŭ mikroserva aliro, distribuata kaj paralela komputado dominas.

Mi ŝatus noti, ke dum testado en la kampo de Datuma Kvalito, testa specialisto ŝanĝas sian profesian fokuson al la kodo de la produkto kaj la iloj uzataj.

Karakterizaĵoj de datumkvalita testado

Krome, por mi mem, mi identigis la jenajn (mi tuj faros rezervon, ke ili estas TRE ĝeneraligitaj kaj ekskluzive subjektivaj) distingaj trajtoj de testado en Datumaj (Grandaj Datumoj) projektoj (sistemoj) kaj aliaj areoj:

Granda kaj malgranda datumprovilo: tendencoj, teorio, mia rakonto

utilaj ligoj

  1. Teorio: DAMA-DMBOK: Korpo de Scio pri Datuma Administrado: 2-a Eldono.
  2. Trejncentro EPAM 
  3. Rekomenditaj materialoj por komencanta inĝeniero pri kvalito de datumoj:
    1. Senpaga kurso pri Stepik: Enkonduko al datumbazoj
    2. Kurso pri LinkedIn Lernado: Data Science Foundations: Datuma Inĝenierado.
    3. Artikoloj:
    4. Video:

konkludo

Datumoj Kvalito estas tre juna promesplena direkto, esti parto de kiu signifas esti parto de ekentrepreno. Unufoje en Datuma Kvalito, vi estos mergita en granda nombro da modernaj, postulataj teknologioj, sed plej grave, enormaj ŝancoj malfermos por vi por generi kaj efektivigi viajn ideojn. Vi povos uzi la kontinuan plibonigan aliron ne nur en la projekto, sed ankaŭ por vi mem, senĉese evoluante kiel specialisto.

fonto: www.habr.com

Aldoni komenton