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

De beroepen Data Scientist en Data Engineer worden vaak door elkaar gehaald. Elk bedrijf heeft zijn eigen specifieke kenmerken van het werken met gegevens, verschillende doeleinden voor de analyse ervan en een ander idee van welke specialist welk deel van het werk moet behandelen, daarom heeft elk zijn eigen vereisten. 

Laten we eens kijken wat het verschil is tussen deze specialisten, welke zakelijke problemen ze oplossen, welke vaardigheden ze hebben en hoeveel ze verdienen. Het materiaal bleek groot, dus hebben we het in twee publicaties verdeeld.

In het eerste artikel, Elena Gerasimova, hoofd van de faculteit “Datawetenschap en analyse" in Netology vertelt wat het verschil is tussen een Data Scientist en een Data Engineer en met welke tools ze werken.

Hoe de rollen van ingenieurs en wetenschappers verschillen

Een data engineer is een specialist die enerzijds data-infrastructuur ontwikkelt, test en onderhoudt: databases, opslag- en massaverwerkingssystemen. Aan de andere kant is dit degene die gegevens opschoont en ‘kammt’ voor gebruik door analisten en datawetenschappers, dat wil zeggen pijplijnen voor gegevensverwerking creëert.

Data Scientist creëert en traint voorspellende (en andere) modellen met behulp van machine learning-algoritmen en neurale netwerken, waardoor bedrijven verborgen patronen kunnen vinden, ontwikkelingen kunnen voorspellen en belangrijke bedrijfsprocessen kunnen optimaliseren.

Het belangrijkste verschil tussen een Data Scientist en een Data Engineer is dat ze meestal verschillende doelen hebben. Beiden zorgen ervoor dat gegevens toegankelijk en van hoge kwaliteit zijn. Maar een datawetenschapper vindt antwoorden op zijn vragen en test hypothesen in een data-ecosysteem (bijvoorbeeld gebaseerd op Hadoop), en een data-ingenieur creëert een pijplijn voor het onderhouden van een machine learning-algoritme dat is geschreven door een datawetenschapper in een Spark-cluster binnen hetzelfde ecosysteem. 

Een data-ingenieur voegt waarde toe aan een bedrijf door in teamverband te werken. Haar taak is om te fungeren als een belangrijke schakel tussen verschillende deelnemers: van ontwikkelaars tot zakelijke consumenten van rapportage, en om de productiviteit van analisten te verhogen, van marketing en product tot BI. 

Een Data Scientist daarentegen neemt actief deel aan de strategie van het bedrijf en het extraheren van inzichten, het nemen van beslissingen, het implementeren van automatiseringsalgoritmen, het modelleren en het genereren van 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, zullen de resultaten zelfs met behulp van de meest geavanceerde analyse-algoritmen onjuist zijn. 

Data-ingenieurs lossen dit probleem op door pijplijnen te bouwen voor het verwerken, opschonen en transformeren van data en datawetenschappers te laten werken met data van hoge kwaliteit. 

Er zijn veel tools op de markt om met data te werken die elk stadium bestrijken: van het verschijnen van data tot de output tot een dashboard voor de raad van bestuur. En het is belangrijk dat de beslissing om ze te gebruiken wordt genomen door een ingenieur - niet omdat het in de mode is, maar omdat hij het werk van andere deelnemers aan het proces echt zal helpen. 

Conventioneel: als een bedrijf verbindingen moet maken tussen BI en ETL - gegevens moet laden en rapporten moet bijwerken, is hier een typische legacy-basis waar een Data Engineer mee te maken zal krijgen (het is goed als er ook een architect in het team zit).

Verantwoordelijkheden van een Data Engineer

  • Ontwikkeling, aanleg en onderhoud van infrastructuur voor gegevensverwerking.
  • Fouten afhandelen en betrouwbare pijplijnen voor gegevensverwerking creëren.
  • Ongestructureerde data uit verschillende dynamische bronnen in de vorm brengen die nodig is voor het werk van analisten.
  • Het geven van aanbevelingen om de consistentie en kwaliteit van de gegevens te verbeteren.
  • Het leveren en onderhouden van de data-architectuur die wordt gebruikt door datawetenschappers en data-analisten.
  • Verwerk en bewaar gegevens consistent en efficiënt in een gedistribueerd cluster van tientallen of honderden servers.
  • Evalueer de technische afwegingen van tools om eenvoudige maar robuuste architecturen te creëren die verstoringen kunnen overleven.
  • Controle en ondersteuning van datastromen en bijbehorende systemen (inrichten monitoring en alerts).

Binnen het Data Engineer traject bestaat nog een specialisatie: ML engineer. Kortom, deze ingenieurs zijn gespecialiseerd in het naar industriële implementatie en gebruik brengen van machine learning-modellen. Vaak maakt een model dat is ontvangen van een datawetenschapper deel uit van een onderzoek en werkt het mogelijk niet in gevechtsomstandigheden.

Verantwoordelijkheden van een datawetenschapper

  • Functies uit gegevens extraheren om machine learning-algoritmen toe te passen.
  • Gebruik van verschillende machine learning-tools om patronen in gegevens te voorspellen en te classificeren.
  • Verbetering van de prestaties en nauwkeurigheid van machine learning-algoritmen door de algoritmen te verfijnen en te optimaliseren.
  • Vorming van “sterke” hypothesen in overeenstemming met de strategie van het bedrijf die moeten worden getest.

Zowel Data Engineer als Data Scientist delen een tastbare bijdrage aan de ontwikkeling van een datacultuur, waardoor een bedrijf extra winst kan genereren of kosten kan verlagen.

Met welke talen en tools werken ingenieurs en wetenschappers?

Tegenwoordig zijn de verwachtingen voor datawetenschappers veranderd. Voorheen verzamelden ingenieurs grote SQL-query's, schreven ze handmatig MapReduce en verwerkten ze gegevens met behulp van tools als Informatica ETL, Pentaho ETL en Talend. 

Anno 2020 kan een specialist niet zonder kennis van Python en moderne rekentools (bijvoorbeeld Airflow), begrip van de principes van het werken met cloudplatforms (ze gebruiken om te besparen op hardware, met inachtneming van beveiligingsprincipes).

SAP, Oracle, MySQL en Redis zijn traditionele tools voor data-ingenieurs in grote bedrijven. Ze zijn goed, maar de kosten van licenties zijn zo hoog dat ermee leren werken alleen zin heeft 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 worden er vaak verzoeken om Java en Scala gevonden, hoewel naarmate technologieën en benaderingen zich ontwikkelen, deze talen naar de achtergrond verdwijnen.

Echter, hardcore BigData: Hadoop, Spark en de rest van de dierentuin is niet langer een voorwaarde voor een data engineer, maar een soort gereedschap voor het oplossen van problemen die niet met traditionele ETL kunnen worden opgelost. 

De trend is dat diensten voor het gebruik van tools zonder kennis van de taal waarin ze zijn geschreven (bijvoorbeeld Hadoop zonder kennis van Java), evenals het aanbieden van kant-en-klare diensten voor het verwerken van streaminggegevens (stemherkenning 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?
De mogelijkheid om zelf pipelines te bouwen verscheen pas een paar jaar geleden voor analisten en datawetenschappers: het is bijvoorbeeld al mogelijk om met relatief eenvoudige scripts data naar een op PostgreSQL gebaseerde opslag te sturen. 

Normaal gesproken blijft het gebruik van pijplijnen en geïntegreerde datastructuren de verantwoordelijkheid van data-ingenieurs. Maar vandaag de dag is de trend naar T-vormige specialisten met brede competenties op aanverwante gebieden sterker dan ooit, omdat tools voortdurend worden vereenvoudigd.

Waarom data-ingenieur en data-wetenschapper samenwerken

Door nauw samen te werken met ingenieurs kunnen datawetenschappers zich concentreren op de onderzoekskant en productieklare machine learning-algoritmen creëren.
En ingenieurs moeten zich concentreren op schaalbaarheid, hergebruik van data en ervoor zorgen dat de data-invoer- en -uitvoerpijplijnen in elk afzonderlijk project voldoen aan de mondiale architectuur.

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

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

Door nauw samen te werken met datawetenschappers en analisten kunnen ingenieurs analytische en onderzoeksvaardigheden ontwikkelen om betere code te schrijven. Het delen van kennis tussen magazijn- en data lake-gebruikers verbetert, waardoor projecten wendbaarder worden en duurzamere resultaten op de lange termijn worden opgeleverd.

In bedrijven die een cultuur willen ontwikkelen van het werken met data en het bouwen van bedrijfsprocessen op basis daarvan, vullen Data Scientist en Data Engineer elkaar aan en creëren ze een compleet data-analysesysteem. 

In het volgende artikel zullen we het hebben over wat voor opleiding een Data Engineer en Data Scientists moeten hebben, welke vaardigheden ze moeten ontwikkelen en hoe de markt werkt.

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

Voeg een reactie