{"id":77180,"date":"2020-04-08T13:42:32","date_gmt":"2020-04-08T11:42:32","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/testirovshhik-bolshih-i-malenkih-dannyh-trendy-teoriya-moya-istoriya"},"modified":"2020-04-08T13:42:32","modified_gmt":"2020-04-08T11:42:32","slug":"testirovshhik-bolshih-i-malenkih-dannyh-trendy-teoriya-moya-istoriya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/testirovshhik-bolshih-i-malenkih-dannyh-trendy-teoriya-moya-istoriya","title":{"rendered":"Tester velikih i malih podataka: trendovi, teorija, moja pri\u010da","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Bok svima, zovem se Aleksandar i ja sam in\u017eenjer kvalitete podataka koji se bavi provjerom kvalitete podataka. U ovom \u010dlanku govorit \u0107u o tome kako sam do toga do\u0161ao i za\u0161to je u 2020. godini ovo podru\u010dje testiranja do\u0161lo u sredi\u0161te pozornosti. <\/p>\n<p><img decoding=\"async\" alt=\"Tester velikih i malih podataka: trendovi, teorija, moja pri\u010da\" src=\"\/wp-content\/uploads\/2020\/04\/0691d5a78bcbc8f4f102eafbbef20c0a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Globalni trend <\/h2>\n<p>\nDanas svijet prolazi kroz jo\u0161 jednu tehnolo\u0161ku revoluciju, a jedan od aspekata je na\u010din na koji brojne tvrtke koriste akumulirane podatke za unapre\u0111enje vlastitih prodajnih ciklusa, dobiti i PR-a. \u010cini se da je upravo posjedovanje dobrih (kvalitetnih) podataka, kao i sposobnosti onih koji ih mogu pretvoriti u novac (ispravno obraditi, vizualizirati, izgraditi modele strojnog u\u010denja itd.), postalo klju\u010d uspjeha za mnoge. Dok su se prije 15-20 godina predano radili sakupljanje podataka i njihova monetizacija prvenstveno u velikim tvrtkama, danas je to postalo podru\u010dje gotovo svih razboritih. <\/p>\n<p>U tom kontekstu, prije nekoliko godina, svi portali posve\u0107eni tra\u017eenju posla \u0161irom svijeta po\u010deli su biti preplavljeni oglasima za pozicije Data Scientist-a, jer su svi vjerovali da zapo\u0161ljavanjem takvog stru\u010dnjaka mogu izgraditi supermodel strojnog u\u010denja, predvidjeti budu\u0107nost i napraviti \"kvantni skok\" za tvrtku. S vremenom su ljudi shvatili da takav pristup gotovo nigdje ne funkcionira, jer nisu svi podaci koje ovakvi stru\u010dnjaci dobiju prikladni za obu\u010davanje modela. <\/p>\n<p>I po\u010deli su zahtjevi od Data Scientists: \u201eHajde da kupimo jo\u0161 podataka od ovih i onih\u2026\u201d, \u201eNedostaje nam podataka\u2026\u201d, \u201ePotrebno nam je jo\u0161 malo podataka i po\u017eeljno kvalitetnih\u2026\u201d. Na temelju tih zahtjeva po\u010dela su se razvijati brojna me\u0111usobna povezivanja izme\u0111u kompanija koje posjeduju odre\u0111ene skupove podataka. Naravno, to je zahtijevalo tehni\u010dku organizaciju tog procesa \u2014 povezivanje na izvor podataka, preuzimanje istih, provjera da li su u potpunosti u\u010ditani itd. Broj takvih procesa je rastao, i danas imamo ogroman interes za drugim vrstama stru\u010dnjaka \u2014 in\u017eenjerima kvalitete podataka \u2014 onima koji bi pratili protok podataka u sustavu (data pipelines), kvalitetu podataka na ulazu i izlazu, te dono\u0161enje zaklju\u010daka o njihovoj dostatnosti, cjelovitosti i drugim karakteristikama. <\/p>\n<p>Trend Data Quality in\u017eenjera do\u0161ao je k nama iz SAD-a, gdje u jeku bujne ere kapitalizma nitko nije spreman izgubiti bitku za podatke. Ispod sam prikazao snimke zaslona s dva najpopularnija web mjesta za tra\u017eenje posla u SAD-u: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.monster.com\">www.monster.com<\/a><\/noindex> i <noindex><a rel=\"nofollow\" href=\"https:\/\/www.dice.com\">www.dice.com<\/a><\/noindex> \u2014 na kojima su prikazani podaci zaklju\u010dno s 17. o\u017eujka 2020. godine o broju objavljenih radnih mjesta po klju\u010dnim rije\u010dima: Data Quality i Data Scientist. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.monster.com\">www.monster.com<\/a><\/noindex><\/p>\n<p>Data Scientist \u2013 21416 radnih mjesta<br \/>\nData Quality \u2013 41104 radna mjesta<\/p>\n<p><img decoding=\"async\" alt=\"Tester velikih i malih podataka: trendovi, teorija, moja pri\u010da\" src=\"\/wp-content\/uploads\/2020\/04\/8578f2d1e600791e166ed6e8a7068015.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"Tester velikih i malih podataka: trendovi, teorija, moja pri\u010da\" src=\"\/wp-content\/uploads\/2020\/04\/3ff69acc3c7e0d649eae0808b1b535be.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.dice.com\">www.dice.com<\/a><\/noindex> <\/p>\n<p>Data Scientist \u2013 404 radna mjesta<br \/>\nData Quality \u2013 2020 radnih mjesta<\/p>\n<p><img decoding=\"async\" alt=\"Tester velikih i malih podataka: trendovi, teorija, moja pri\u010da\" src=\"\/wp-content\/uploads\/2020\/04\/b35a9b423ba4bef8736659580e3c281e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"Tester velikih i malih podataka: trendovi, teorija, moja pri\u010da\" src=\"\/wp-content\/uploads\/2020\/04\/2c29b83bbe2361089de5a0ab65017300.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nO\u010digledno, ove profesije ni na koji na\u010din ne konkuriraju jedna drugoj. Snimkama zaslona samo sam htio ilustrirati trenutnu situaciju na tr\u017ei\u0161tu rada u vezi s potra\u017enjom za Data Quality in\u017eenjerima, kojih sada ima znatno vi\u0161e nego Data Scientist-a. <\/p>\n<p>U lipnju 2019. godine, EPAM, reagiraju\u0107i na potrebe modernog IT tr\u017ei\u0161ta, izdvojio je Data Quality kao posebnu praksu. Data Quality in\u017eenjeri u svom svakodnevnom radu upravljaju podacima, provjeravaju njihovo pona\u0161anje u novim uvjetima i sustavima, te kontroliraju relevantnost podataka, njihovu dovoljnost i aktualnost. Ipak, prakti\u010dno gledano, Data Quality in\u017eenjeri zaista malo vremena posve\u0107uju klasi\u010dnom funkcionalnom testiranju, <u>ALI<\/u> to uvelike ovisi o projektu (primjer \u0107u navesti dalje). <\/p>\n<p>Obveze Data Quality in\u017eenjera ne ograni\u010davaju se samo na rutinske ru\u010dne\/automatske provjere \u201enulls, count i sums\u201c u DB tablicama, ve\u0107 zahtijevaju duboko razumijevanje poslovnih potreba naru\u010ditelja i, prema tome, sposobnost transformiranja postoje\u0107ih podataka u korisne poslovne informacije. <\/p>\n<h2>Teorija Data Quality<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Tester velikih i malih podataka: trendovi, teorija, moja pri\u010da\" src=\"\/wp-content\/uploads\/2020\/04\/d920a7a0435d6f3a1eb84fc16221c742.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Kako bismo najbolje razumjeli ulogu takvog in\u017eenjera, razjasnimo \u0161to je Data Quality u teoriji. <\/p>\n<p><b>Data Quality<\/b> \u2014 jedna od faza upravljanja podacima (cijeli svijet koji \u0107emo vam ostaviti za samostalno prou\u010davanje) i odgovara za analizu podataka prema sljede\u0107im kriterijima: <\/p>\n<p><img decoding=\"async\" alt=\"Tester velikih i malih podataka: trendovi, teorija, moja pri\u010da\" src=\"\/wp-content\/uploads\/2020\/04\/8f5e75bad69e3cb589cc0e1104ad946f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nMislim da ne treba obja\u0161njavati svaku stavku (teorijski nazivaju se \u201edata dimensions\u201c), one su prili\u010dno dobro opisane na slici. No, sam proces testiranja ne podrazumijeva strogo Kopiranje ovih osobina u testne slu\u010dajeve i njihovu provjeru. U Kvaliteti podataka, kao i u bilo kojem drugom obliku testiranja, potrebno je prvenstveno se oslanjati na zahtjeve za kvalitetu podataka, dogovorene s sudionicima projekta koji donose poslovne odluke. <\/p>\n<p><\/p>\n<blockquote><p>Ovisno o projektu, in\u017eenjer Kvalitete podataka mo\u017ee obavljati razli\u010dite funkcije: od obi\u010dnog automatiziranog testera s povr\u0161inskom procjenom kvalitete podataka, do osobe koja provodi dubinsko profiliranje prema gore navednim osobinama. <\/p><\/blockquote>\n<p>Vrlo detaljan opis procesa Upravljanja podacima, Kvalitete podataka i povezanih koncepata izvrsno je opisan u knjizi pod nazivom <i>\u201eDAMA-DMBOK: Body of Knowledge za upravljanje podacima: 2. izdanje\u201c<\/i>. Iskreno preporu\u010dujem ovu knjigu kao uvod u ovu tematiku (link na nju \u0107ete prona\u0107i na kraju \u010dlanka).<\/p>\n<h2>Moja pri\u010da<\/h2>\n<p>\nU IT industriji pro\u0161ao sam put od Junior testera u produktnim kompanijama do Lead Data Quality Engineera u kompaniji EPAM. Nakon otprilike dvije godine rada kao tester imao sam \u010dvrsto uvjerenje da sam prolazio kroz sve vrste testiranja: regresijsko, funkcionalno, stresno, stabilnosti, sigurnosti, UI itd. \u2014 i isprobao sam veliki broj alata za testiranje, rade\u0107i pritom na tri programska jezika: Java, Scala, Python. <\/p>\n<p><\/p>\n<blockquote><p>Gledaju\u0107i unatrag, razumijem za\u0161to je moj set profesionalnih vje\u0161tina postao toliko raznolik \u2014 sudjelovao sam u projektima vezanim uz rad s podacima, velikim i malim. Upravo me to dovelo u svijet velikog broja alata i mogu\u0107nosti za rast.<\/p><\/blockquote>\n<p>Da biste procijenili raznolikost alata i mogu\u0107nosti stjecanja novih znanja i vje\u0161tina, dovoljno je samo pogledati sliku u nastavku, na kojoj su prikazani najpopularniji me\u0111u njima u svijetu \u201ePodaci &amp; AI\u201c.<\/p>\n<p><img decoding=\"async\" alt=\"Tester velikih i malih podataka: trendovi, teorija, moja pri\u010da\" src=\"\/wp-content\/uploads\/2020\/04\/e3278694195bf59b44055e1eaafd62b1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nOve ilustracije sastavlja godi\u0161nje jedan od poznatih rizi\u010dnih kapitalista Matt Turck, biv\u0161i programer. Evo <noindex><a rel=\"nofollow\" href=\"https:\/\/mattturck.com\">link<\/a><\/noindex> njegovog bloga i <noindex><a rel=\"nofollow\" href=\"https:\/\/firstmarkcap.com\/team\/matt-turck\">tvrtke rizi\u010dnog kapitala<\/a><\/noindex>, gdje radi kao partner. <\/p>\n<p>Osobito sam brzo napredovao kada sam bio jedini tester na projektu, ili barem na po\u010detku projekta. U tom trenutku mora\u0161 biti odgovoran za cijeli proces testiranja, bez mogu\u0107nosti povla\u010denja, samo naprijed. Isprva je to bilo zastra\u0161uju\u0107e, me\u0111utim sada su mi o\u010diti svi pozitivni aspekti tog iskustva: <\/p>\n<ul>\n<li>Po\u010dinje\u0161 komunicirati sa cijelim timom kao nikada prije, jer nema posrednika u komunikaciji: ni voditelja testiranja, ni kolega testera. <\/li>\n<li>Uranjanje u projekt postaje nevjerojatno duboko, a ti posjeduje\u0161 informacije o svim komponentama, kako op\u0107enito, tako i u detalje. <\/li>\n<li>Programeri te ne gledaju kao \"tog tipa iz testiranja koji nije ba\u0161 jasan\", ve\u0107 kao ravnog partnera koji donosi nevjerojatnu korist timu svojim automatiziranim testovima i predvi\u0111anjem nastanka gre\u0161aka u odre\u0111enom dijelu proizvoda. <\/li>\n<li>Kao rezultat \u2014 postaje\u0161 u\u010dinkovitiji, kvalificiraniji, i tra\u017eeniji. <\/li>\n<\/ul>\n<p>\nKako projekt raste, u 100% slu\u010dajeva postajem mentor novim testerima koji dolaze, obu\u010davam ih i prenosim znanja koja sam sam nau\u010dio. Ovisno o projektu, nisam uvijek dobivao od vodstva stru\u010dnjake za automatizirano testiranje najvi\u0161eg nivoa, pa je postojala potreba ili da ih obu\u010davam za automatizaciju (za one koji su \u017eeljeli), ili da kreiram alate za njihovo svakodnevno kori\u0161tenje (alate za generiranje podataka i njihovo u\u010ditavanje u sustav, alat za provo\u0111enje optere\u0107uju\u0107ih testova\/testiranja stabilnosti \"u brzom postupku\" itd.). <\/p>\n<h3>Primjer konkretnog projekta<\/h3>\n<p>\nNa\u017ealost, zbog obveza o neotkrivanju informacija ne mogu detaljno govoriti o projektima na kojima sam radio, ali \u0107u navesti primjere tipi\u010dnih zadataka Data Quality Engineera na jednom od projekata. <\/p>\n<p>Osnovna svrha projekta je realizirati platformu za pripremu podataka za obuku modela strojnog u\u010denja. Naru\u010ditelj je bila velika farmaceutska kompanija iz SAD-a. Tehni\u010dki, to je bio klaster <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\">Kubernetes<\/a><\/noindex>, podignut na <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/ec2\">AWS EC2<\/a><\/noindex> instancama, s nekoliko mikroslu\u017ebi i temeljnom Open Source projektom kompanije EPAM \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/legion-platform\/legion\">Legion<\/a><\/noindex>, prilago\u0111en potrebama odre\u0111enog naru\u010ditelja (sada je projekt preobra\u017een u <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/odahu\/odahu-flow\">odahu<\/a><\/noindex>). ETL procesi su organizirani pomo\u0107u <noindex><a rel=\"nofollow\" href=\"https:\/\/airflow.apache.org\">Apache Airflow<\/a><\/noindex> i premje\u0161tali podatke iz <noindex><a rel=\"nofollow\" href=\"https:\/\/www.salesforce.com\">SalesForce<\/a><\/noindex> sustava naru\u010ditelja u <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/s3\/?nc1=h_ls\">AWS S3<\/a><\/noindex> Buckets. Zatim se na platformu implementirao Docker imid\u017e modela strojnog u\u010denja, koji se trenirao na svje\u017eim podacima i putem REST API su\u010delja vra\u0107ao predikcije od interesa za poslovanje i rje\u0161avao specifi\u010dne zadatke. <\/p>\n<p><b>Vizualno je sve izgledalo otprilike ovako: <\/b><\/p>\n<p><img decoding=\"async\" alt=\"Tester velikih i malih podataka: trendovi, teorija, moja pri\u010da\" src=\"\/wp-content\/uploads\/2020\/04\/c2de3c1919f3f9ff29147fce09eb14c4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nFunkcionalnog testiranja na ovom projektu bilo je vi\u0161e nego dovoljno, a s obzirom na brzinu razvoja zna\u010dajki i potrebu odr\u017eavanja tempa ciklusa izdanja (dvotjedni sprintovi), bilo je potrebno odmah razmi\u0161ljati o automatizaciji testiranja najkriti\u010dnijih \u010dvorova sustava. Veliki dio same platforme s Kubernetes temeljem pokriven je automatiziranim testovima, implementiranim na <noindex><a rel=\"nofollow\" href=\"https:\/\/robotframework.org\/\">Robot Framework<\/a><\/noindex> + Python, ali je tako\u0111er bilo potrebno odr\u017eavati i pro\u0161irivati ih. Osim toga, za prakti\u010dnost naru\u010ditelja, stvoreno je GUI su\u010delje za upravljanje modelima strojnog u\u010denja, implementiranim na klasteru, kao i mogu\u0107nost odrediti odakle i kamo je potrebno prenijeti podatke za obuku modela. Ovo opse\u017eno pro\u0161irenje dovelo je do \u0161irenja automatiziranih funkcionalnih provjera, koje su ve\u0107inom ra\u0111ene kroz REST API pozive i mali broj end-2-end UI testova. Otprilike na polovici cijelog ovog procesa pridru\u017eio nam se ru\u010dni tester, koji je odli\u010dno obavljao prihvatno testiranje verzija proizvoda i komunicirao s naru\u010diteljem o prihvodu novog izdanja. Osim toga, zahvaljuju\u0107i novoj stru\u010dnjaku, uspjeli smo dokumentirati na\u0161 rad i dodati nekoliko vrlo va\u017enih ru\u010dnih provjera koje je bilo te\u0161ko odmah automatizirati. <\/p>\n<p>I kona\u010dno, nakon \u0161to smo postigli stabilnost platforme i GUI nadogradnje na njoj, pristupili smo izgradnji ETL cjevovoda koriste\u0107i Apache Airflow DAG-ove. Automatizirana provjera kvalitete podataka vr\u0161ena je pisanjem specijalnih Airflow DAG-ova koji su provjeravali podatke prema rezultatima rada ETL procesa. U okviru ovog projekta imali smo sre\u0107e jer nam je naru\u010ditelj pru\u017eio pristup neobdu\u017eenim skupovima podataka na kojima smo testirali. Provjeravali smo podatke redak po redak na uskla\u0111enost s tipovima, prisutnost neispravnih podataka, ukupan broj unosa prije i poslije, te uspore\u0111ivali transformacije koje je izvr\u0161io ETL proces po agregaciji, promjenama naziva kolona i ostalom. Osim toga, ovi su se pregledi pro\u0161irili na razli\u010dite izvore podataka, primjerice, osim SalesForce-a, i na MySQL. <\/p>\n<p>Provjere kona\u010dne kvalitete podataka provodile su se ve\u0107 na razini S3, gdje su oni pohranjeni i bili spremni za upotrebu u obuci modela strojnog u\u010denja. Za dobivanje podataka iz kona\u010dne CSV datoteke smje\u0161tene na S3 Bucket-u i njihovu validaciju, napisan je kod koriste\u0107i <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/sdk-for-python\">boto3 klijent<\/a><\/noindex>. <\/p>\n<p>Tako\u0111er, sa strane naru\u010ditelja postojao je zahtjev za \u010duvanjem dijela podataka u jednom S3 Bucket-u, a dijela u drugom. Za to je bilo potrebno pisati dodatne provjere koje su nadgledale to\u010dnost takve podjele. <\/p>\n<h3>Generalizirano iskustvo iz drugih projekata<\/h3>\n<p>\nPrimjer najgeneraliziranijeg popisa aktivnosti in\u017eenjera kvalitete podataka: <\/p>\n<ul>\n<li>Pripremiti testne podatke (va\u017ee\u0107e, neva\u017ee\u0107e, velike, male) putem automatiziranog alata. <\/li>\n<li>U\u010ditati pripremljeni skup podataka u izvorni izvor i provjeriti njegovu spremnost za kori\u0161tenje. <\/li>\n<li>Pokrenuti ETL procese obrade skupa podataka iz izvorne pohrane u kona\u010dnu ili privremenu koriste\u0107i odre\u0111eni skup postavki (u slu\u010daju mogu\u0107nosti zadavanja konfigurabilnih parametara za ETL zadatak). <\/li>\n<li>Verificirati obra\u0111ene podatke ETL procesom u smislu njihove kvalitete i uskla\u0111enosti s poslovnim zahtjevima. <\/li>\n<\/ul>\n<p>\nGlavni fokus provjera trebao bi biti ne samo na tome je li protok podataka u sustavu uop\u0107e funkcionirao i stigao do kraja (\u0161to je dio funkcionalnog testiranja), ve\u0107 ve\u0107inom na provjeri i validaciji podataka kako bi se osiguralo da odgovaraju o\u010dekivanim zahtjevima, uo\u010de\u0107i anomalije i sli\u010dno. <\/p>\n<h3>Alati<\/h3>\n<p>\nJedna od tehnika takvog nadzora podataka mo\u017ee biti organizacija lan\u010danih provjera u svakoj fazi obrade podataka, takozvani \"data chain\" \u2014 kontrola podataka od izvora do kona\u010dne to\u010dke kori\u0161tenja. Ove provjere naj\u010de\u0161\u0107e se provode pisanjem SQL upita za provjeru. Naravno, takvi upiti trebaju biti \u0161to lak\u0161i i usmjereni na provjeru pojedinih dijelova kvalitete podataka (metapodaci tablica, prazne linije, NULL-ovi, gre\u0161ke u sintaksi \u2014 drugi potrebni atributi provjere). <\/p>\n<p>U slu\u010daju regresijskog testiranja, u kojem se koriste ve\u0107 pripremljeni (neizmjenjivi ili neznatno izmjenjivi) setovi podataka, u kodu automatiziranih testova mogu biti pohranjeni ve\u0107 gotovi obrasci za provjeru podataka u odnosu na kvalitetu (opis o\u010dekivanih metapodataka tablica; nizovi uzoraka koji se mogu nasumi\u010dno birati tijekom testiranja, i sli\u010dno). <\/p>\n<p>Tako\u0111er, tijekom testiranja treba pisati testne ETL procese, koriste\u0107i okvire poput Apache Airflow, <noindex><a rel=\"nofollow\" href=\"https:\/\/spark.apache.org\/\">Apache Spark<\/a><\/noindex> ili potpuno black-box cloud alate poput <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/dataprep\">GCP Dataprep<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/dataflow\">GCP Dataflow<\/a><\/noindex> i sli\u010dno. Ova situacija prisiljava testnog in\u017eenjera da se uroni u principe rada gore navedenih alata i jo\u0161 u\u010dinkovitije provodi funkcionalno testiranje (na primjer, postoje\u0107ih ETL procesa na projektu), kao i da ih koristi za provjeru podataka. Konkretno, za Apache Airflow ve\u0107 postoje gotovi operatori za rad s popularnim analiti\u010dkim bazama podataka, kao \u0161to su <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/bigquery\">GCP BigQuery<\/a><\/noindex>. Najosnovniji primjer njegove upotrebe ve\u0107 je izlo\u017een <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@yuu.ishikawa\/apache-airflow-as-a-data-quality-checker-416ca7f5a3ad\">ovdje<\/a><\/noindex>, stoga ne\u0107u ponavljati. <\/p>\n<p>Osim gotovih rje\u0161enja, nitko vam ne zabranjuje implementaciju vlastitih tehnika i alata. To \u0107e biti korisno ne samo za projekt, ve\u0107 i za samog Data Quality Engineera, koji \u0107e na taj na\u010din unaprijediti svoje tehni\u010dke perspektive i vje\u0161tine programiranja. <\/p>\n<h3>Kako to funkcionira na stvarnom projektu<\/h3>\n<p>\nDobar primjer posljednjih odlomaka o \u201edata chain\u201d-u, ETL-u i sveprisutnim provjerama je sljede\u0107i proces iz jednog stvarnog projekta: <\/p>\n<p><img decoding=\"async\" alt=\"Tester velikih i malih podataka: trendovi, teorija, moja pri\u010da\" src=\"\/wp-content\/uploads\/2020\/04\/4a4cd3043b584bb3fbce4b9c3021e9f6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOvdje u ulaznu \u201evrhunsku\u201d fazu na\u0161eg sustava dolaze razli\u010diti podaci (naravno, pripremljeni od strane nas): valjani, nevaljani, mije\u0161ani itd., zatim se filtriraju i odlaze u me\u0111uskladi\u0161te, nakon \u010dega ponovo prolaze kroz niz transformacija i smje\u0161taju se u kona\u010dno skladi\u0161te, iz kojeg \u0107e se, zauzvrat, vr\u0161iti analitika, izgradnja data vitrina i pretra\u017eivanje poslovnih uvida. U takvom sustavu, ne provjeravaju\u0107i funkcionalnost ETL procesa, fokusiramo se na kvalitetu podataka prije i nakon transformacija, kao i na izlazu u analitiku. <\/p>\n<p>Sa\u017eimaju\u0107i navedeno, bez obzira na mjesta gdje sam radio, svugdje sam bio uklju\u010den u Data projekte koji su imali sljede\u0107e karakteristike: <\/p>\n<ul>\n<li>Samo putem automatizacije mo\u017ee se provjeriti odre\u0111ene slu\u010dajeve i posti\u0107i prihvatljiv ciklus izdanja za poslovanje. <\/li>\n<li>Tester u takvom projektu je jedan od najcjenjenijih \u010dlanova tima, jer donosi ogroman doprinos svakom sudioniku (br\u017ee testiranje, dobre podatke za Data Scientist-e, identifikacija nedostataka u ranim fazama). <\/li>\n<li>Nije va\u017eno radite li na vlastitoj opremi ili u oblacima - svi resursi su apstrahirani u klastere poput Hortonworks, Cloudera, Mesos, Kubernetes i sl. <\/li>\n<li>Projekti se temelje na mikroservisnom pristupu, prevladavaju distribuirana i paralelna ra\u010dunanja. <\/li>\n<\/ul>\n<p>\nNapominjem da se, bave\u0107i se testiranjem u podru\u010dju Data Quality, tester \u043f\u043e\u043cjera svoj profesionalni fokus na kod proizvoda i kori\u0161tene alate. <\/p>\n<h3>Karakteristike Data Quality testiranja<\/h3>\n<p>\nOsim toga, za sebe sam istaknuo sljede\u0107e (odmah da naglasim VEOMA generalizirane i isklju\u010divo subjektivne) karakteristike testiranja u Data (Big Data) projektima (sustavima) i drugim podru\u010djima: <\/p>\n<p><img decoding=\"async\" alt=\"Tester velikih i malih podataka: trendovi, teorija, moja pri\u010da\" src=\"\/wp-content\/uploads\/2020\/04\/8df52fbae2998e70755bf84e254db83e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Koristitne veze<\/h2>\n<p><\/p>\n<ol>\n<li>Teorija: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/DAMA-DMBOK-Data-Management-Body-Knowledge\/dp\/1634622340\">DAMA-DMBOK: Data Management Body of Knowledge: 2nd Edition<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/training.ru\/#!\/Home?lang=ru\">Trening-centar<\/a><\/noindex>&nbsp;EPAM&nbsp;<\/li>\n<li>Preporu\u010deni materijali za po\u010detnog Data Quality in\u017eenjera:\n<ol>\n<li>Besplatni te\u010daj na Stepik:&nbsp;<noindex><a rel=\"nofollow\" href=\"https:\/\/stepik.org\/course\/551\/syllabus\">Uvod u baze podataka<\/a><\/noindex>.&nbsp;<\/li>\n<li>Te\u010daj na LinkedIn Learning:&nbsp;<noindex><a rel=\"nofollow\" href=\"https:\/\/www.linkedin.com\/learning\/data-science-foundations-data-engineering\/welcome\">Osnove Data Science: Data Engineering<\/a><\/noindex>.<\/li>\n<li>\u010clanci:\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.stickyminds.com\/article\/business-intelligence-and-data-quality\">Poslovna inteligencija i Data Quality<\/a><\/noindex>;&nbsp;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.datagaps.com\/concepts\/etl-testing\">ETL testiranje<\/a><\/noindex>;&nbsp;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/panoply.io\/analytics-stack-guide\/data-profiling-best-practices\">\u0160to je Data Profiling? Proces, najbolje prakse i alati<\/a><\/noindex>;&nbsp;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.guru99.com\/software-testing-test-data.html\">Generiranje testnih podataka: \u0160to je, kako se radi, primjer, alati;&nbsp;<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.testbytes.net\/blog\/5-test-data-generation-techniques-to-know\">5 tehnika generiranja testnih podataka koje trebate znati.<\/a><\/noindex>&nbsp;<\/li>\n<\/ul>\n<\/li>\n<li>Video:\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=HWaBdqmTqEA\">Koncepti kvalitete podataka | Tutorial o kvaliteti podataka | Tutorial o skladi\u0161tima podataka<\/a><\/noindex>;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=avDqzhuHFkw\">Data Profiling koriste\u0107i SSIS<\/a><\/noindex>;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=r7SF5WldITk\">Profiliranje podataka i obrada cjevovoda s Spark-om.<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Zaklju\u010dak<\/h2>\n<p>\n<b>Data Quality<\/b> \u2014 ovo je vrlo mlada i perspektivna oblast, a biti deo nje zna\u010di biti deo nekog startupa. U okviru Data Quality-a, zaronit \u0107ete u mno\u0161tvo modernih i tra\u017eenih tehnologija, ali najva\u017enije je to \u0161to \u0107e vam se otvoriti ogromne mogu\u0107nosti za generisanje i realizaciju vlastitih ideja. Mo\u0107i \u0107ete primeniti pristup stalnog unapre\u0111enja ne samo na projektu, ve\u0107 i za sebe, neprekidno se razvijaju\u0107i kao stru\u010dnjak.<br \/>\n<br \/>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/epam_systems\/blog\/495478\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440, \u0438 \u044f Data Quality \u0438\u043d\u0436\u0435\u043d\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u0438\u0445 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0451\u0442 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044f \u043a \u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0448\u0451\u043b \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0432 2020 \u0433\u043e\u0434\u0443 \u044d\u0442\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0430 \u0433\u0440\u0435\u0431\u043d\u0435 \u0432\u043e\u043b\u043d\u044b. \u041c\u0438\u0440\u043e\u0432\u043e\u0439 \u0442\u0440\u0435\u043d\u0434 \u0421\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0438\u0439 \u043c\u0438\u0440 \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u0443\u044e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0440\u0435\u0432\u043e\u043b\u044e\u0446\u0438\u044e, \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0430\u0441\u043f\u0435\u043a\u0442\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":77181,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-77180","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440, \u0438 \u044f Data Quality \u0438\u043d\u0436\u0435\u043d\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u0438\u0445 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/testirovshhik-bolshih-i-malenkih-dannyh-trendy-teoriya-moya-istoriya\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0438 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445: \u0442\u0440\u0435\u043d\u0434\u044b, \u0442\u0435\u043e\u0440\u0438\u044f, \u043c\u043e\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440, \u0438 \u044f Data Quality \u0438\u043d\u0436\u0435\u043d\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u0438\u0445 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/testirovshhik-bolshih-i-malenkih-dannyh-trendy-teoriya-moya-istoriya\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-04-08T11:42:32+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-08T11:42:32+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Ispitiva\u010d velikih i malih podataka: trendovi, teorija, moja pri\u010da | ProHoster","description":"Pozdrav svima, ja sam Aleksandar, Data Quality in\u017eenjer koji se bavi proverom kvaliteta podataka.","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/testirovshhik-bolshih-i-malenkih-dannyh-trendy-teoriya-moya-istoriya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0438 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445: \u0442\u0440\u0435\u043d\u0434\u044b, \u0442\u0435\u043e\u0440\u0438\u044f, \u043c\u043e\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440, \u0438 \u044f Data Quality \u0438\u043d\u0436\u0435\u043d\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u0438\u0445 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430.","og:url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/testirovshhik-bolshih-i-malenkih-dannyh-trendy-teoriya-moya-istoriya","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-04-08T11:42:32+00:00","article:modified_time":"2020-04-08T11:42:32+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"77180","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:22:32","updated":"2022-10-03 00:36:00","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/77180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=77180"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/77180\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media\/77181"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=77180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=77180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=77180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}