Data-ingenieur en data-wetenschapper: wat is het verschil?

De beroepen van datawetenschapper en data-engineer worden vaak met elkaar verward. Elk bedrijf heeft zijn eigen specifieke kenmerken van dataverwerking, verschillende doelen voor hun analyses en verschillende ideeën over welke specialisten welk deel van het werk moeten doen, waardoor elk bedrijf zijn eigen eisen stelt. 

We zoeken uit wat de verschillen zijn tussen deze specialisten, welke taken ze uitvoeren, welke vaardigheden ze hebben en hoeveel ze verdienen. Het materiaal bleek omvangrijk, dus hebben we het in twee publicaties verdeeld.

In het eerste artikel schrijft Elena Gerasimova, hoofd van de faculteit,Datawetenschap en analyse» in Netology, legt het verschil uit tussen een Data Scientist en een Data Engineer en welke tools ze gebruiken.

Hoe de rollen van ingenieurs en wetenschappers verschillen

Een data engineer is een specialist die enerzijds data-infrastructuur ontwikkelt, test en ondersteunt: databases, opslag- en massaverwerkingssystemen. Anderzijds is hij degene die de data opschoont en 'uitkamt' voor gebruik door analisten en datawetenschappers, oftewel dataverwerkingspijplijnen creëert.

Een Data Scientist maakt en traint voorspellende (en andere) modellen met behulp van algoritmen voor machine learning en neurale netwerken. Daarmee helpen ze bedrijven verborgen patronen te vinden, toekomstige ontwikkelingen te voorspellen en belangrijke bedrijfsprocessen te optimaliseren.

Het belangrijkste verschil tussen een data scientist en een data engineer is dat ze doorgaans verschillende doelen hebben. Beiden werken eraan om ervoor te zorgen dat data toegankelijk en van goede kwaliteit is. Een data scientist vindt antwoorden op zijn of haar vragen en test hypothesen in een data-ecosysteem (bijvoorbeeld Hadoop), terwijl een data engineer een pipeline creëert voor het aanbieden van een machine learning-algoritme dat door een data scientist is geschreven in een Spark-cluster binnen hetzelfde ecosysteem. 

Een data engineer creëert waarde voor de business door in teamverband te werken. Hun taak is om te fungeren als een belangrijke schakel tussen verschillende partijen: van ontwikkelaars tot zakelijke gebruikers van rapportages, en om de productiviteit van analisten te verhogen - van marketing en product tot BI. 

Een Data Scientist speelt daarentegen een actieve rol in de strategie van het bedrijf. Hij of zij verkrijgt inzichten, neemt beslissingen, implementeert automatiseringsalgoritmen, modelleert en genereert waarde uit data.
Data-ingenieur en data-wetenschapper: wat is het verschil?

Bij het werken met data geldt het GIGO-principe (garbage in — garbage out): als analisten en datawetenschappers te maken krijgen met onvoorbereide en mogelijk onjuiste data, dan zullen de resultaten, zelfs met de meest geavanceerde analysealgoritmes, onjuist zijn. 

Data engineers lossen dit probleem op door pijplijnen te bouwen voor het verwerken, opschonen en transformeren van data, waardoor de datawetenschapper met data van hoge kwaliteit kan werken. 

Er zijn veel datatools op de markt die elke fase bestrijken: van het ontstaan ​​van data tot de output op het dashboard van de directiekamer. En het is belangrijk dat de beslissing om ze te gebruiken door de ingenieur wordt genomen – niet omdat het modieus is, maar omdat hij de andere deelnemers aan het proces echt helpt. 

Voorwaardelijk: als een bedrijf vrienden moet maken tussen BI en ETL - het laden van gegevens en het bijwerken van rapporten, is dit een typische legacy-basis waar een Data Engineer mee te maken krijgt (het is goed als het team ook een architect bevat).

Verantwoordelijkheden van een data engineer

  • Ontwikkeling, bouw en onderhoud van gegevensverwerkingsinfrastructuur.
  • Omgaan met fouten en betrouwbare dataverwerkingspijplijnen creëren.
  • Het omzetten van ongestructureerde gegevens uit verschillende dynamische bronnen naar de vorm die analisten nodig hebben voor hun werk.
  • Het geven van aanbevelingen om de consistentie en kwaliteit van gegevens te verbeteren.
  • Het leveren en ondersteunen van de data-architectuur die wordt gebruikt door datawetenschappers en data-analisten.
  • Verwerk en sla gegevens consistent en efficiënt op in een gedistribueerd cluster van tientallen of honderden servers.
  • Technische afwegingen maken tussen tools om eenvoudige maar robuuste architecturen te creëren die bestand zijn tegen storingen.
  • Beheer en ondersteuning van gegevensstromen en bijbehorende systemen (inrichten van monitoring en waarschuwingen).

Er is nog een specialisatie binnen het Data Engineer-traject: ML-engineer. Kort gezegd zijn deze engineers gespecialiseerd in het implementeren en gebruiken van machine learning-modellen in de industrie. Vaak maakt het model dat de datawetenschapper ontvangt deel uit van het onderzoek en werkt het mogelijk niet in gevechtsomstandigheden.

Verantwoordelijkheden van datawetenschappers

  • Kenmerken uit gegevens halen om algoritmen voor machinaal leren toe te passen.
  • Verschillende hulpmiddelen voor machinaal leren gebruiken om patronen in gegevens te voorspellen en classificeren.
  • Verbeter de prestaties en nauwkeurigheid van machine learning-algoritmen door algoritmen te verfijnen en te optimaliseren.
  • Het formuleren van ‘sterke’ hypothesen in overeenstemming met de strategie van het bedrijf die getest moeten worden.

Zowel een Data Engineer als een Data Scientist leveren een concrete bijdrage aan de ontwikkeling van een datacultuur. Hiermee kan een bedrijf extra winst genereren of kosten verlagen.

Met welke talen en hulpmiddelen werken ingenieurs en wetenschappers?

Tegenwoordig zijn de verwachtingen van datawetenschappers veranderd. Voorheen stelden engineers grote SQL-query's samen, schreven ze handmatig MapReduce en verwerkten ze data met tools zoals Informatica ETL, Pentaho ETL en Talend. 

Een specialist kan anno 2020 niet meer zonder kennis van Python en moderne computerhulpmiddelen (bijvoorbeeld Airflow), en zonder kennis van de principes van het werken met cloudplatformen (hiermee besparen op hardware, met inachtneming van de beveiligingsprincipes).

SAP, Oracle, MySQL en Redis zijn traditionele tools voor data engineers in grote bedrijven. Ze zijn goed, maar de licentiekosten zijn zo hoog dat het alleen zinvol is om ermee te leren werken in industriële projecten. Tegelijkertijd is er een gratis alternatief in de vorm van Postgres - het is gratis en niet alleen geschikt voor training. 

Data-ingenieur en data-wetenschapper: wat is het verschil?
Historisch gezien is er veel vraag naar Java en Scala, maar naarmate de technologie en aanpak evolueren, verdwijnen deze talen naar de achtergrond.

Maar hardcore BigData: Hadoop, Spark en de rest van het geheel zijn voor een data engineer niet langer onmisbaar, maar vormen een soort hulpmiddel voor het oplossen van problemen die niet met traditionele ETL opgelost kunnen worden. 

De trend is dat er diensten worden aangeboden voor het gebruiken van hulpmiddelen zonder dat men de taal waarin ze geschreven zijn kent (bijvoorbeeld Hadoop zonder kennis van Java). Ook worden er kant-en-klare diensten aangeboden voor het verwerken van streaminggegevens (spraak- of beeldherkenning op video).

Industriële oplossingen van SAS en SPSS zijn populair, terwijl Tableau, Rapidminer, Stata en Julia ook veel worden gebruikt door datawetenschappers voor lokale taken.

Data-ingenieur en data-wetenschapper: wat is het verschil?
Pas sinds een paar jaar kunnen analisten en datawetenschappers zelf pipelines bouwen. Zo is het bijvoorbeeld nu al mogelijk om met behulp van relatief eenvoudige scripts gegevens naar een PostgreSQL-gebaseerde opslag te sturen. 

Traditioneel blijft het gebruik van pipelines en geïntegreerde datastructuren de verantwoordelijkheid van data engineers. Maar tegenwoordig is de trend naar T-vormige specialisten – met brede competenties op aanverwante gebieden – sterker dan ooit, omdat tools voortdurend worden vereenvoudigd.

Waarom data-engineers en datawetenschappers samenwerken

Door nauw samen te werken met technici kunnen datawetenschappers zich richten op het onderzoeksgedeelte en productieklare algoritmen voor machine learning creëren.
Engineers moeten zich richten op schaalbaarheid, hergebruik van gegevens en ervoor zorgen dat de invoer- en uitvoerpijplijnen in elk afzonderlijk project aansluiten op de wereldwijde architectuur.

Deze verdeling van verantwoordelijkheden zorgt voor consistentie tussen teams die aan verschillende machine learning-projecten werken. 

Samenwerking helpt om efficiënt nieuwe producten te creëren. Snelheid en kwaliteit worden bereikt door een balans te vinden tussen het creëren van een service voor iedereen (globale opslag of dashboardintegratie) en het implementeren van elke specifieke behoefte of elk project (een zeer gespecialiseerde pijplijn, het verbinden van externe bronnen). 

Door nauw samen te werken met datawetenschappers en analisten ontwikkelen engineers analytische en verkennende vaardigheden om betere code te schrijven. De kennisdeling tussen datawarehouse- en datalakegebruikers verbetert, waardoor projecten flexibeler worden en duurzamere resultaten op de lange termijn opleveren.

In bedrijven die een datacultuur willen ontwikkelen en daarop gebaseerde bedrijfsprocessen willen opzetten, vullen Data Scientist en Data Engineer elkaar aan en creëren ze een volwaardig data-analysesysteem. 

In het volgende artikel bespreken we welke opleiding Data Engineers en Data Scientists zouden moeten hebben, welke vaardigheden ze moeten ontwikkelen en hoe de markt is gestructureerd.

Van de redactie van Netology

Als u kijkt naar het beroep van Data Engineer of Data Scientist, nodigen wij u uit om onze cursusprogramma's te bestuderen:

Bron: www.habr.com