Wat is een Data Engineer en heb ik er één nodig? – Deel 1

18 februari 2021 | Blog | Thomas Braam

Facebook, Google, Amazon, Netflix, Microsoft: allemaal willen ze gretig je data -ook wel het nieuwe goud genoemd- in handen krijgen. Inmiddels weten we wel waarom dat is: Data Analisten en Data Scientists maken analyses en gebruiken slimme algoritmes om met die data voorspellingen te doen om zo meer waarde uit hun producten te halen. Waar komt deze data vandaan? En wat komt er allemaal bij kijken om deze data te verzamelen, op te slaan en toegankelijk te maken voor de mensen die ze gebruiken? Bij al deze vraagstukken speelt de data engineer een belangrijke rol. In deel 1 van deze blogserie neem ik (Thomas Braam) je mee naar het werkveld van een Data Engineer.

Leestijd: 3 minuten – auteur:

 Thomas Braam

 

Definitie

De functie ‘Data Engineer’ is wat aan inflatie onderhevig. En dat is niet gek want de wereld van data-analyse en AI ontwikkeld zich enorm snel. Met het veranderen van het speelveld zien we heel snel, heel veel nieuwe rolnamen tevoorschijn komen: Data Scientist, Data Analyst, Data Engineer, Machine Learning Engineer, Data Architect, ETL Engineer, Database Administrator, Software Engineer. Om je ‘competitive edge’ niet te verliezen als werkgever moet je je zeilen gehesen hebben om mee te kunnen varen op deze onstuimige digitale oceaan. Maar hoe weet je nou wat je allemaal nodig hebt?

Laten we voor Data Engineer beginnen met het bepalen van een hele simpele definitie, ik gooi er één op: “Een Data Engineer is een specialist die data verzamelt, verplaatst, prepareert en beschikbaar maakt voor gebruikers en/of specialisten.”.  Volgens deze definitie lijkt de Data Engineer enkel een hulpje voor de slimme Data Scientists. Echter, ik hoop je er in het vervolg van dit artikel van te overtuigen dat het iets gecompliceerder ligt dan dat.

Twee typen Data Engineers

Eerder noemde ik al dat het begrip Data Engineer niet goed gedefinieerd is. Zelf zou ik Data Engineers onderverdelen in twee afzonderlijke types:

  1. De “ETL Data Engineer”
  2. De “Streaming Data Engineer”

In deze blog geef ik een voorbeeld van de ETL Data Engineer en zal ik omschrijven wanneer je dit type nodig hebt. In deel 2 van mijn blogserie behandel ik de Streaming Data Engineer, en ga ik dieper in op waarom je beide typen niet over één kam kunt scheren.

De “ETL Data Engineer”

Begin 2019 ben je een webshop gestart die handelt in hele mooie en functionele vogelhuisjes. De zaken gaan prima, maar als in 2020 een pandemie uitbreekt vliegen ze opeens de winkel uit. Elke dag kopen wel meer dan 10.000 klanten een vogelhuis en je krijgt de smaak te pakken. Je besluit een Data Scientist in te huren die je de opdracht geeft om inzicht te krijgen in je klantbestand. Met behulp van Machine Learning technieken wil je persoonlijke aanbiedingen kunnen doen aan je klanten. De data die zij gebruikt om een model te trainen heb je gekregen van de webadmin die jou elke week een Excel bestand e-mailt.

Je Data Scientist heeft een mooi model getraind en doet één keer per week voorspellingen. De afgeleide persoonlijke aanbiedingen worden een week later netjes verstuurd. Jammer genoeg kom je erachter dat je e-mails weinig effect hebben. Je denkt erover na en beseft je dat dat niet zo gek is. Immers, mensen die week geleden geen vogelhuis bij je hebben gekocht, hebben dat waarschijnlijk inmiddels wel bij je concurrent gedaan.

Wat zijn je opties?

Je kunt de webadmin vragen je vaker de laatste data te sturen, en vragen of je Data Scientist elke dag in zijn email wil kijken om het model opnieuw in actie te brengen met nieuwe data. Tijd die zij dan niet in hun andere werkzaamheden kunnen stoppen. En dan: is één keer per dag wel genoeg? Als een klant een vogelhuis wil, wil die hem zeker wel nu, niet over een paar dagen. Dus zelfs een e-mail met één dag vertraging is al niet frequent genoeg. En om het geheel nog verder te compliceren: doordat je website zo immens populair is, moet de webadmin elke dag inmiddels een Excel bestand van 100GB downloaden. En dat begint ook een bottleneck te worden.

Een ETL Data Engineer kan je zien als een loodgieter die deze verstopte pijpleiding kan ontstoppen. En tegelijkertijd ook even de pijpen vervangt met een moderne pijpleiding. De ETL Data Engineer heeft verstand van SQL. Dus in plaats van een data dump van de webadmin kan hij direct de onderliggende database van de website aanspreken met een geoptimaliseerde query die alleen de relevante data ontsluit. Als er nog een aantal transformatiestappen nodig zijn voor de data bij de Data Scientist terecht komt, zal de Data Engineer dit ook voor zijn rekening kunnen nemen. Een ETL Data Engineer is namelijk een expert in het bewegen en transformeren van data.

Om modellen te trainen zijn Data Scientists ook bezig met het transformeren van data, maar zij zijn voornamelijk domeinexperts ten aanzien van Machine Learning algoritmes. Het doel van de data transformaties die zij doen is ten behoeve van het optimaliseren van hun modellen. Vaak zijn zij geen expert op het gebied van hoe data efficiënt (ten aanzien van snelheid en kosten) getransformeerd kan worden. Daarom is het raadzaam dat Data Scientists en Data Engineers in nauw contact staan over welke transformaties gedaan moeten worden. Zo komen ze allebei het beste toch hun recht in hun eigen expertisegebied.

Data Engineer – Wordt vervolgd!

Ik hoop je een goed beeld te hebben gegeven over de rol van de ETL Data Engineer. In deel 2 van mijn blogserie over de Data Engineer omschrijf ik de Streaming Data Engineer. Vervolgens zet ik de verschillen van beide typen op een rij en geef ik je voorbeelden wanneer je welk type Data Engineer nodig zult hebben.

Lees hier deel 2