{"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\/da\/blog\/administrirovanie\/testirovshhik-bolshih-i-malenkih-dannyh-trendy-teoriya-moya-istoriya","title":{"rendered":"Tester af store og sm\u00e5 data: trends, teori, min historie","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hej alle sammen, jeg hedder Alexander, og jeg er Data Quality-engineer, der arbejder med at kontrollere data for kvalitet. I denne artikel vil jeg fort\u00e6lle om, hvordan jeg kom hertil, og hvorfor denne testretning i 2020 blev meget popul\u00e6r. <\/p>\n<p><img decoding=\"async\" alt=\"Tester af store og sm\u00e5 data: trends, teori, min historie\" 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>Global trend <\/h2>\n<p>\nDen moderne verden oplever endnu en teknologisk revolution, hvor et af aspekterne er brugen af de indsamlende data af forskellige virksomheder til at fremme deres salgs- og PR-motor. Det ser ud til, at tilstedev\u00e6relsen af gode (kvalitets) data samt dygtige hjerner, der kan udnytte dem til at skabe v\u00e6rdi (behandle dem korrekt, visualisere, bygge maskinl\u00e6ringsmodeller osv.), er blevet n\u00f8glen til succes for mange i dag. For 15-20 \u00e5r siden var det hovedsageligt st\u00f8rre virksomheder, der var besk\u00e6ftiget med indsamling og monetisering af data, men i dag er det en opgave for n\u00e6sten alle fornuftige virksomheder. <\/p>\n<p>Som f\u00f8lge heraf blev alle jobportaler verden over for et par \u00e5r siden oversv\u00f8mmet med stillingsopslag for Data Scientists, da alle var overbevist om, at ved at ans\u00e6tte en s\u00e5dan specialist kunne de bygge en supermodel for maskinl\u00e6ring, forudsige fremtiden og skabe et \"kvantespring\" for virksomheden. Med tiden inds\u00e5 folk, at denne tilgang n\u00e6sten ingen steder fungerer, da langt fra alle data, der n\u00e5r h\u00e6nderne p\u00e5 denne slags specialister, er egnede til at tr\u00e6ne modeller. <\/p>\n<p>Og begyndte foresp\u00f8rgslerne fra Data Scientists: \u00abLad os k\u00f8be flere data fra disse og disse...\u00bb, \u00abVi mangler data...\u00bb, \u00abVi har brug for lidt flere data, og gerne af h\u00f8j kvalitet...\u00bb. Baseret p\u00e5 disse foresp\u00f8rgsler begyndte der at opst\u00e5 talrige interaktioner mellem virksomheder, der ejer forskellige datas\u00e6t. Naturligvis kr\u00e6vede det teknisk organisering af denne proces \u2014 at oprette forbindelse til datakilden, hente dem, kontrollere at de er indl\u00e6st i fuldt omfang osv. Antallet af s\u00e5danne processer er steget, og i dag har vi en enorm behov for en anden type specialister \u2014 Data Quality ingeni\u00f8rer \u2014 dem, der overv\u00e5ger datastreamet i systemet (data pipelines), kvaliteten af dataene i indgangen og udgangen, og drager konklusioner om deres tilstr\u00e6kkelighed, integritet og andre karakteristika. <\/p>\n<p>Trenden med Data Quality ingeni\u00f8rer kommer til os fra USA, hvor ingen er klar til at tabe kampen om data i midten af den rasende kapitalisme. Nedenfor har jeg pr\u00e6senteret sk\u00e6rmbilleder fra to af de mest popul\u00e6re job portals i USA: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.monster.com\">www.monster.com<\/a><\/noindex> og <noindex><a rel=\"nofollow\" href=\"https:\/\/www.dice.com\">www.dice.com<\/a><\/noindex> \u2014 hvor data er vist pr. 17. marts 2020 for antallet af opsl\u00e5ede job med n\u00f8gleordene: Data Quality og Data Scientist. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.monster.com\">www.monster.com<\/a><\/noindex><\/p>\n<p>Data Scientists \u2013 21416 job<br \/>\nData Quality \u2013 41104 job<\/p>\n<p><img decoding=\"async\" alt=\"Tester af store og sm\u00e5 data: trends, teori, min historie\" src=\"\/wp-content\/uploads\/2020\/04\/8578f2d1e600791e166ed6e8a7068015.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"Tester af store og sm\u00e5 data: trends, teori, min historie\" 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 Scientists \u2013 404 job<br \/>\nData Quality \u2013 2020 job<\/p>\n<p><img decoding=\"async\" alt=\"Tester af store og sm\u00e5 data: trends, teori, min historie\" src=\"\/wp-content\/uploads\/2020\/04\/b35a9b423ba4bef8736659580e3c281e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"Tester af store og sm\u00e5 data: trends, teori, min historie\" src=\"\/wp-content\/uploads\/2020\/04\/2c29b83bbe2361089de5a0ab65017300.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nDet er tydeligt, at disse professioner p\u00e5 ingen m\u00e5de konkurrerer med hinanden. Med sk\u00e6rmbillederne ville jeg blot illustrere den nuv\u00e6rende situation p\u00e5 arbejdsmarkedet i forhold til eftersp\u00f8rgslen p\u00e5 Data Quality ingeni\u00f8rer, som der nu er meget st\u00f8rre behov for end Data Scientists. <\/p>\n<p>I juni 2019 etablerede EPAM, som reaktion p\u00e5 behovene p\u00e5 det moderne IT-marked, Data Quality som en separat praksis. Data Quality ingeni\u00f8rer h\u00e5ndterer dagligt data, tester deres opf\u00f8rsel i nye forhold og systemer, samt kontrollerer dataenes relevans, tilstr\u00e6kkelighed og aktualitet. I praktisk forstand dedikerer Data Quality ingeni\u00f8rer dog faktisk lidt tid til klassisk funktionel testning, <u>MEN<\/u> det afh\u00e6nger i h\u00f8j grad af projektet (jeg vil give et eksempel senere). <\/p>\n<p>Data Quality ingeni\u00f8rens ansvar begr\u00e6nser sig ikke kun til rutinem\u00e6ssige manuelle\/automatiske kontroller af \"nulls, count og sums\" i databaser, men kr\u00e6ver en dyb forst\u00e5else af kundens forretningsbehov og evnen til at transformere eksisterende data til brugbar forretningsinformation. <\/p>\n<h2>Teori om Data Quality<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Tester af store og sm\u00e5 data: trends, teori, min historie\" src=\"\/wp-content\/uploads\/2020\/04\/d920a7a0435d6f3a1eb84fc16221c742.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>For at f\u00e5 et fuldt billede af rollen som en s\u00e5dan ingeni\u00f8r, lad os unders\u00f8ge, hvad Data Quality er i teorien. <\/p>\n<p><b>Data Quality<\/b> \u2014 er et af stadierne i Data Management (en hel verden, som vi lader dig udforske p\u00e5 egen h\u00e5nd) og omhandler analyse af data ud fra f\u00f8lgende kriterier: <\/p>\n<p><img decoding=\"async\" alt=\"Tester af store og sm\u00e5 data: trends, teori, min historie\" src=\"\/wp-content\/uploads\/2020\/04\/8f5e75bad69e3cb589cc0e1104ad946f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nJeg tror ikke, det er n\u00f8dvendigt at dechiffrere hvert enkelt punkt (i teorien kaldes de \"data dimensions\"); de er ganske godt beskrevet p\u00e5 billedet. Men selve testprocessen foruds\u00e6tter ikke en striks kopi af disse karakteristika i testcases og deres validering. Inden for Data Quality, som i enhver anden type testning, er det prim\u00e6rt n\u00f8dvendigt at basere sig p\u00e5 kravene til datakvalitet, som er aftalt med deltagerne i projektet, der tr\u00e6ffer forretningsbeslutninger. <\/p>\n<p><\/p>\n<blockquote><p>Afh\u00e6ngigt af projektet kan en Data Quality-ingeni\u00f8r udf\u00f8re forskellige funktioner: fra en almindelig automatiseringstestere med en overfladisk vurdering af datakvaliteten til en person, der udf\u00f8rer en dybdeg\u00e5ende profilering af dem i henhold til de n\u00e6vnte karakteristika. <\/p><\/blockquote>\n<p>Meget detaljeret beskrivelse af processerne inden for Data Management, Data Quality og besl\u00e6gtede emner er fremragende beskrevet i bogen ved navn <i>\u00abDAMA-DMBOK: Data Management Body of Knowledge: 2nd Edition\u00bb<\/i>. Jeg anbefaler st\u00e6rkt denne bog som en introduktion til emnet (linket til den finder du i slutningen af artiklen).<\/p>\n<h2>Min historie<\/h2>\n<p>\nI IT-branchen har jeg bev\u00e6get mig fra Junior tester i produktvirksomheder til Lead Data Quality Engineer hos EPAM. Efter omkring to \u00e5rs arbejde som tester havde jeg en fast overbevisning om, at jeg havde udf\u00f8rt alle former for testning: regression, funktionel, stresstest, stabilitet, sikkerhed, UI osv. \u2014 og pr\u00f8vet et stort antal testv\u00e6rkt\u00f8jer, mens jeg har arbejdet med tre programmeringssprog: Java, Scala, Python. <\/p>\n<p><\/p>\n<blockquote><p>N\u00e5r jeg ser tilbage, forst\u00e5r jeg, hvorfor mit f\u00e6rdighedss\u00e6t har v\u00e6ret s\u00e5 forskelligt \u2014 jeg har deltaget i projekter, der involverer arbejde med data, b\u00e5de store og sm\u00e5. Det var netop dette, der bragte mig ind i en verden af mange v\u00e6rkt\u00f8jer og muligheder for v\u00e6kst.<\/p><\/blockquote>\n<p>For at vurdere mangfoldigheden af v\u00e6rkt\u00f8jer og muligheder for at opn\u00e5 ny viden og f\u00e6rdigheder er det tilstr\u00e6kkeligt blot at se p\u00e5 billedet nedenfor, som viser de mest popul\u00e6re af dem i verden af \"Data &amp; AI\".<\/p>\n<p><img decoding=\"async\" alt=\"Tester af store og sm\u00e5 data: trends, teori, min historie\" src=\"\/wp-content\/uploads\/2020\/04\/e3278694195bf59b44055e1eaafd62b1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nDenne slags illustrationer laves \u00e5rligt af en kendt venturekapitalist Matt Turck, der kommer fra softwareudvikling. Her er <noindex><a rel=\"nofollow\" href=\"https:\/\/mattturck.com\">link<\/a><\/noindex> hans blog og <noindex><a rel=\"nofollow\" href=\"https:\/\/firstmarkcap.com\/team\/matt-turck\">virksomheden for venturekapital<\/a><\/noindex>, hvor han arbejder som partner. <\/p>\n<p>Jeg udviklede mig is\u00e6r hurtigt, da jeg var den eneste tester p\u00e5 projektet, eller i det mindste i starten af projektet. I s\u00e5danne situationer er man ansvarlig for hele testprocessen, og man har ikke mulighed for at tr\u00e6kke sig tilbage, kun at g\u00e5 fremad. I begyndelsen var det skr\u00e6mmende, men nu ser jeg klart alle fordelene ved denne udfordring: <\/p>\n<ul>\n<li>Du begynder at kommunikere med hele teamet som aldrig f\u00f8r, da der ikke er nogen mellemledere for kommunikationen: hverken testmanager eller kolleger i testteamet. <\/li>\n<li>Dykningen ind i projektet bliver utrolig dyb, og du har kendskab til alle komponenter b\u00e5de generelt og i detaljer. <\/li>\n<li>Udviklerne ser ikke p\u00e5 dig som \"den fyr fra testning, som umuligt kan finde ud af, hvad han laver\", men snarere som en ligestillet, der giver en enorm v\u00e6rdi til teamet med sine automatiserede tests og evne til at forudse bugs i specifikke dele af produktet. <\/li>\n<li>Som resultat bliver du mere effektiv, mere kvalificeret, mere eftertragtet. <\/li>\n<\/ul>\n<p>\nEfterh\u00e5nden som projektet voksede, blev jeg i 100% af tilf\u00e6ldene mentor for nyankomne testere, hvor jeg tr\u00e6nede dem og delte den viden, jeg selv havde l\u00e6rt. Afh\u00e6ngigt af projektet modtog jeg dog ikke altid specialister p\u00e5 h\u00f8jeste niveau inden for automatisering fra ledelsen, og der var behov for enten at tr\u00e6ne dem i automatisering (for dem, der \u00f8nskede det) eller at skabe v\u00e6rkt\u00f8jer til deres daglige aktiviteter (v\u00e6rkt\u00f8jer til datagenerering og upload til systemet, v\u00e6rkt\u00f8j til hurtig belastningstest\/stabilitetstest osv.). <\/p>\n<h3>Eksempel p\u00e5 et konkret projekt<\/h3>\n<p>\nDesv\u00e6rre kan jeg p\u00e5 grund af fortrolighedsforpligtelser ikke tale i detaljer om de projekter, jeg har arbejdet p\u00e5, men jeg vil give eksempler p\u00e5 typiske opgaver for en Data Quality Engineer i et af projekterne. <\/p>\n<p>Essensen af projektet var at implementere en platform til forberedelse af data til at tr\u00e6ne modeller for maskinl\u00e6ring. Kunden var et stort farmaceutisk selskab fra USA. Teknisk set var det et cluster <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\">Kubernetes<\/a><\/noindex>, der k\u00f8rer p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/ec2\">AWS EC2<\/a><\/noindex> instanser, med flere mikrotjenester og baseret p\u00e5 et Open Source-projekt fra EPAM \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/legion-platform\/legion\">Legion<\/a><\/noindex>, tilpasset de specifikke behov hos kunden (nu er projektet blevet til <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/odahu\/odahu-flow\">odahu<\/a><\/noindex>). ETL-processer blev organiseret ved hj\u00e6lp af <noindex><a rel=\"nofollow\" href=\"https:\/\/airflow.apache.org\">Apache Airflow<\/a><\/noindex> og og flyttede data fra <noindex><a rel=\"nofollow\" href=\"https:\/\/www.salesforce.com\">SalesForce<\/a><\/noindex> kundens system til <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/s3\/?nc1=h_ls\">AWS S3<\/a><\/noindex> Buckets. Herefter blev en Docker-billede af en maskinl\u00e6ringsmodel implementeret p\u00e5 platformen, som blev tr\u00e6net p\u00e5 friske data og gav forudsigelser via et REST API, der interesserede forretningen og l\u00f8ste specifikke opgaver. <\/p>\n<p><b>Det s\u00e5 visuelt omtrent s\u00e5dan ud: <\/b><\/p>\n<p><img decoding=\"async\" alt=\"Tester af store og sm\u00e5 data: trends, teori, min historie\" src=\"\/wp-content\/uploads\/2020\/04\/c2de3c1919f3f9ff29147fce09eb14c4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nDer var rigeligt med funktionel testning p\u00e5 dette projekt, og i betragtning af hastigheden p\u00e5 udviklingen af nye funktioner og behovet for at opretholde tempoet i udgivelsescyklussen (to-ugers sprints) var det n\u00f8dvendigt straks at overveje automatisering af testene p\u00e5 de mest kritiske dele af systemet. En stor del af selve platformen, som var baseret p\u00e5 Kubernetes, blev d\u00e6kket af automatiserede tests, der blev implementeret i <noindex><a rel=\"nofollow\" href=\"https:\/\/robotframework.org\/\">Robot Framework<\/a><\/noindex> + Python, men det var ogs\u00e5 n\u00f8dvendigt at vedligeholde og udvide dem. Derudover blev der for kundens bekvemmelighed oprettet et GUI til at styre maskinl\u00e6ringsmodellerne, der var implementeret p\u00e5 klyngen, samt muligheden for at angive, hvorfra og til hvor data skulle flyttes for at tr\u00e6ne modellerne. Denne omfattende tilf\u00f8jelse f\u00f8rte til en udvidelse af de automatiserede funktionelle kontroller, som hovedsageligt blev udf\u00f8rt gennem REST API-opkald og et lille antal end-2-end UI-tests. Omkring midten af hele denne proces sluttede en manuel tester sig til os, som klarede sig fint med accepttest af produktversioner og kommunikation med kunden omkring accepten af den seneste udgivelse. Desuden gjorde den nye specialist det muligt for os at dokumentere vores arbejde og tilf\u00f8je flere meget vigtige manuelle kontroller, som var sv\u00e6re at automatisere med det samme. <\/p>\n<p>Og endelig, efter at vi har opn\u00e5et stabilitet fra platformen og GUI-overbygningen over den, begyndte vi at opbygge ETL-pipelines ved hj\u00e6lp af Apache Airflow DAGs. Den automatiserede datakvalitetskontrol blev udf\u00f8rt ved at skrive specielle Airflow DAGs, som kontrollerede data baseret p\u00e5 resultaterne fra ETL-processen. I forbindelse med dette projekt var vi heldige, da kunden gav os adgang til anonymiserede datas\u00e6t, som vi testede p\u00e5. Vi kontrollerede data r\u00e6kke for r\u00e6kke for at sikre overensstemmelse med typerne, tilstedev\u00e6relsen af korrupte data, det samlede antal poster f\u00f8r og efter, samt sammenligningen af de transformationer, der blev foretaget af ETL-processen i forhold til aggregering, \u00e6ndring af kolonnenavne og andet. Desuden blev disse kontroller skaleret til forskellige datakilder, for eksempel udover SalesForce ogs\u00e5 MySQL. <\/p>\n<p>Kvalitetskontrollerne af de endelige data blev udf\u00f8rt p\u00e5 S3-niveau, hvor de blev opbevaret og var i en ready-to-use tilstand til tr\u00e6ning af maskinl\u00e6ringsmodeller. For at hente data fra den endelige CSV-fil, der l\u00e5 i S3 Bucket, og validere dem, blev der skrevet kode ved hj\u00e6lp af <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/sdk-for-python\">boto3-klienten<\/a><\/noindex>. <\/p>\n<p>Der var ogs\u00e5 et krav fra kunden om at opbevare en del af dataene i \u00e9n S3 Bucket, og en del i en anden. Dette kr\u00e6vede ogs\u00e5, at der blev skrevet ekstra kontroller, der overv\u00e5gede gyldigheden af denne sortering. <\/p>\n<h3>Generel erfaring fra andre projekter<\/h3>\n<p>\nEksempel p\u00e5 den mest generelle liste over aktiviteter for en Data Quality-ingeni\u00f8r: <\/p>\n<ul>\n<li>Forberede testdata (gyldige, ugyldige, store, sm\u00e5) gennem et automatiseret v\u00e6rkt\u00f8j. <\/li>\n<li>Laste det forberedte datas\u00e6t op i den oprindelige kilde og kontrollere dets klarhed til brug. <\/li>\n<li>Starte ETL-processerne for at behandle datas\u00e6ttet fra kildeopbevaringen til det endelige eller mellemliggende ved hj\u00e6lp af et bestemt s\u00e6t indstillinger (hvis det er muligt at specificere konfigurerbare parametre for ETL-opgaven). <\/li>\n<li>Verificere de behandlede data fra ETL-processen med henblik p\u00e5 deres kvalitet og overensstemmelse med forretningskravene. <\/li>\n<\/ul>\n<p>\nHer er hovedfokus for kontrollerne ikke kun p\u00e5, om datastreamen i systemet generelt fungerer og n\u00e5r slutpunkterne (som er en del af funktionalitetstestningen), men prim\u00e6rt p\u00e5 kontrol og validering af data for at sikre overensstemmelse med forventede krav, identificering af anomalier og lignende. <\/p>\n<h3>V\u00e6rkt\u00f8jer<\/h3>\n<p>\nEn af teknikkerne til denne dataoverv\u00e5gning kan v\u00e6re etableringen af k\u00e6de-kontroller p\u00e5 hver fase af datah\u00e5ndteringen, s\u00e5kaldt 'data chain' \u2014 kontrol af data fra kilde til det endelige anvendelsespunkt. Denne type kontrol udf\u00f8res oftest ved at skrive verificerende SQL-foresp\u00f8rgsler. Det er klart, at s\u00e5danne foresp\u00f8rgsler skal v\u00e6re s\u00e5 letv\u00e6gts som muligt og kontrollere bestemte aspekter af datakvaliteten (metadata for tabeller, tomme linjer, NULL'er, syntaksfejl \u2014 andre n\u00f8dvendige kontrolattributter). <\/p>\n<p>I tilf\u00e6lde af regressionstest, hvor der anvendes allerede eksisterende (u\u00e6ndrede eller lidt \u00e6ndrede) datas\u00e6t, kan der i automattests koden gemmes f\u00e6rdige skabeloner til data validation i forhold til kvalitet (beskrivelser af forventede metadata for tabeller; udvalgte objekter, der kan v\u00e6lges tilf\u00e6ldigt under testen, og s\u00e5 videre). <\/p>\n<p>Desuden skal der i l\u00f8bet af testningen skrives test ETL-processer ved hj\u00e6lp af rammer som Apache Airflow, <noindex><a rel=\"nofollow\" href=\"https:\/\/spark.apache.org\/\">Apache Spark<\/a><\/noindex> eller helt black-box cloud v\u00e6rkt\u00f8jer som <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> og s\u00e5 videre. Denne situation tvinger testingeni\u00f8ren til at dykke ned i principperne bag de n\u00e6vnte v\u00e6rkt\u00f8jer og desuden mere effektivt udf\u00f8re funktionalitetstestning (for eksempel af eksisterende ETL-processer i projektet) samt bruge dem til dataverificering. Is\u00e6r for Apache Airflow er der allerede klare operatorer til arbejde med popul\u00e6re analyse-databaser, som for eksempel <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/bigquery\">GCP BigQuery<\/a><\/noindex>. Det mest grundl\u00e6ggende eksempel p\u00e5 dets anvendelse er allerede pr\u00e6senteret <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@yuu.ishikawa\/apache-airflow-as-a-data-quality-checker-416ca7f5a3ad\">her<\/a><\/noindex>, derfor vil jeg ikke gentage mig selv. <\/p>\n<p>Udover de f\u00e6rdige l\u00f8sninger forhindrer ingen jer i at implementere jeres egne teknikker og v\u00e6rkt\u00f8jer. Dette vil ikke kun v\u00e6re en fordel for projektet, men ogs\u00e5 for selve Data Quality Engineer, som derved vil udvide sit tekniske perspektiv og kodningsf\u00e6rdigheder. <\/p>\n<h3>Hvordan det fungerer i et reelt projekt<\/h3>\n<p>\nEn god illustration af de seneste afsnit om \u201edata chain\u201c, ETL og de allestedsn\u00e6rv\u00e6rende kontrolpunkter er f\u00f8lgende proces fra et af vores reelle projekter: <\/p>\n<p><img decoding=\"async\" alt=\"Tester af store og sm\u00e5 data: trends, teori, min historie\" src=\"\/wp-content\/uploads\/2020\/04\/4a4cd3043b584bb3fbce4b9c3021e9f6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHer kommer forskellige data (naturligvis forberedt af os) ind i indgangs \u201etratten\u201c i vores system: gyldige, ugyldige, blandede osv., derefter filtreres de og g\u00e5r ind i et mellemstorage, hvorefter de igen venter p\u00e5 en r\u00e6kke transformationer og placeres i den endelige lagring, hvorfra analysen, opbygningen af datavisning og s\u00f8gning efter forretningsindsigter vil finde sted. I et s\u00e5dant system fokuserer vi, uden at kontrollere den funktionelle drift af ETL-processerne, p\u00e5 datakvaliteten f\u00f8r og efter transformationerne, samt p\u00e5 udgangen til analytik. <\/p>\n<p>For at opsummere ovenst\u00e5ende, uanset hvor jeg har arbejdet, har jeg v\u00e6ret involveret i Data-projekter, der har haft f\u00f8lgende tr\u00e6k: <\/p>\n<ul>\n<li>Kun gennem automatisering kan man teste nogle cases og opn\u00e5 en acceptabel release-cyklus for virksomheden. <\/li>\n<li>Tester i et s\u00e5dant projekt er et af de mest respekterede medlemmer af teamet, da han\/hun bringer stor v\u00e6rdi til alle deltagere (hurtigere testning, gode data til Data Scientist, opdagelse af fejl i de tidlige faser). <\/li>\n<li>Uanset om du arbejder p\u00e5 dit eget udstyr eller i skyerne \u2014 alle ressourcer er abstraheret i et cluster som Hortonworks, Cloudera, Mesos, Kubernetes osv. <\/li>\n<li>Projekterne er bygget p\u00e5 en mikroservices tilgang, med en overv\u00e6gt af distribuerede og parallelle beregninger. <\/li>\n<\/ul>\n<p>\nJeg vil bem\u00e6rke, at n\u00e5r man besk\u00e6ftiger sig med testning inden for Data Quality, flytter testspecialisten sit professionelle fokus til produktets kode og de anvendte v\u00e6rkt\u00f8jer. <\/p>\n<h3>Karakteristiske tr\u00e6k ved Data Quality testning<\/h3>\n<p>\nDerudover har jeg identificeret f\u00f8lgende (g\u00e5ende ud fra meget generelle og udelukkende subjektive) karakteristika ved testningen i Data (Big Data) projekter (systemer) og andre omr\u00e5der: <\/p>\n<p><img decoding=\"async\" alt=\"Tester af store og sm\u00e5 data: trends, teori, min historie\" src=\"\/wp-content\/uploads\/2020\/04\/8df52fbae2998e70755bf84e254db83e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Nyttige links<\/h2>\n<p><\/p>\n<ol>\n<li>Teori: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/DAMA-DMBOK-Data-Management-Body-Knowledge\/dp\/1634622340\">DAMA-DMBOK: Data Management Body of Knowledge: 2. udgave<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/training.ru\/#!\/Home?lang=ru\">Tr\u00e6ningscenter<\/a><\/noindex>&nbsp;EPAM&nbsp;<\/li>\n<li>Anbefalede materialer til den nybegyndende Data Quality ingeni\u00f8r:\n<ol>\n<li>Gratis kursus p\u00e5 Stepik:&nbsp;<noindex><a rel=\"nofollow\" href=\"https:\/\/stepik.org\/course\/551\/syllabus\">Introduktion til databaser<\/a><\/noindex>.&nbsp;<\/li>\n<li>Kursus p\u00e5 LinkedIn Learning:&nbsp;<noindex><a rel=\"nofollow\" href=\"https:\/\/www.linkedin.com\/learning\/data-science-foundations-data-engineering\/welcome\">Data Science Foundations: Data Engineering<\/a><\/noindex>.<\/li>\n<li>Artikler:\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.stickyminds.com\/article\/business-intelligence-and-data-quality\">Business Intelligence og Data Quality<\/a><\/noindex>;&nbsp;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.datagaps.com\/concepts\/etl-testing\">ETL Testing<\/a><\/noindex>;&nbsp;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/panoply.io\/analytics-stack-guide\/data-profiling-best-practices\">Hvad er Data Profiling? Proces, bedste praksis og v\u00e6rkt\u00f8jer<\/a><\/noindex>;&nbsp;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.guru99.com\/software-testing-test-data.html\">Testdata-generering: Hvad er det, hvordan g\u00f8r man, eksempel, v\u00e6rkt\u00f8jer;&nbsp;<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.testbytes.net\/blog\/5-test-data-generation-techniques-to-know\">5 teknikker til testdata-generering, du skal kende.<\/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\">Data Quality Begreber | Data Quality Tutorial | Data Warehousing Tutorial<\/a><\/noindex>;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=avDqzhuHFkw\">Data Profiling ved hj\u00e6lp af SSIS<\/a><\/noindex>;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=r7SF5WldITk\">Data Profiling og pipelinebehandling med Spark.<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Konklusion<\/h2>\n<p>\n<b>Data Quality<\/b> \u2014 dette er en meget ung og lovende retning, og at v\u00e6re en del af den betyder at v\u00e6re en del af en slags startup. N\u00e5r du tr\u00e6der ind i Data Quality, vil du dykke ned i en m\u00e6ngde moderne og eftertragtede teknologier, men det vigtigste er, at der \u00e5bner sig enorme muligheder for at generere og realisere dine id\u00e9er. Du kan anvende tilgangen til kontinuerlig forbedring, ikke kun i dit projekt, men ogs\u00e5 for dig selv, mens du konstant udvikler dig som specialist.<br \/>\n<br \/>Kilde: <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.3 - 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\/da\/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.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47Tester af store og sm\u00e5 data: trends, teori, min historie | ProHoster","description":"Hej alle sammen, jeg hedder Alexander, og jeg er Data Quality ingeni\u00f8r, der arbejder med at kontrollere data for kvalitet.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/testirovshhik-bolshih-i-malenkih-dannyh-trendy-teoriya-moya-istoriya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/77180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=77180"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/77180\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/77181"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=77180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=77180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=77180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}