Wat is een Data Engineer en heb ik er één nodig? – Deel 2
23 februari 2021 | Blog | Thomas Braam
Wat is een Data Engineer? Voordat ik antwoord kan geven op die vraag is er eerst een stuk context nodig.
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 namelijk analyses en gebruiken slimme algoritmes om met die data voorspellingen te doen om zo meer waarde uit hun producten te halen.
Leestijd: 3 minuten – auteur:
Thomas Braam
Maar 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 de blogserie ‘Wat is een Data Engineer?’ nam ik (Thomas Braam) je mee naar het werkveld van een Data Engineer en werd de ETL Data Engineer besproken.
Definitie
Om dit nog even kort samen te vatten: de ETL Data Engineer zorgt ervoor dat de data beschikbaar wordt gesteld voor de gebruiker wanneer hij/zij het nodig heeft. Deze data kan worden opgeslagen in een Database, Data Warehouse of Data Lake (meer over deze termen in een latere blog). Daarbij wordt de data waarschijnlijk verplaatst en getransformeerd in batches, volgens een bepaald tijdsinterval.
Het expertise gebied van de ETL Data Engineer is vooral gefocust op kennis van verschillende typen databases en efficiënte datastructuren.
Een Streaming Data Engineer, daarentegen, houdt zich ook bezig met het verplaatsen en transformeren van data. Dit wordt vanuit een expertisegebied gedaan waarbij de focus iets anders ligt.
De term streaming horen we voornamelijk in de context van videostreaming en klinkt daarom als een erg specifieke niche. Echter, “streaming data” betekent: “een datastroom zonder einde, of een dataset die theoretisch oneindig is.
De “Streaming Data Engineer”
Met de komst van 5G gaat de relevantie van streaming data een enorme vlucht nemen. Ter illustratie kunnen we een zelfsturende auto nemen. Deze auto is in staat te reageren op zijn omgeving door beelden vanuit de vele ingebouwde camera’s te interpreteren. De interpretatie hiervan gebeurt niet in de auto, maar door beelden via het 5G netwerk. Beelden worden naar servers gestuurd waar deze doormiddel van Machine Learning worden geïnterpreteerd. Hierbij is het van belang dat de data zo min mogelijk vertraging heeft (minder dan 10ms) én dat de verbinding niet wegvalt. De data is in deze situatie theoretisch oneindig; wanneer de stream in gebruik is genomen, is het namelijk niet bekend wanneer deze eindigt. Immers, de toekomstige data bestaat nog niet eens.
Verder is ook de toepasbaarheid van streaming data oneindig: elke applicatie die afhankelijk is van het bewegen en transformeren van data kan gebruik maken van het streaming concept. Ook de situatie in het voorbeeld van de ETL Data Engineer.
Maar hoe weet jij of jouw onderneming baat heeft bij het aannemen van een Streaming Data Engineer? Als het rendement van jouw product onderhevig is aan de vertraging tussen het ontstaan van de data en de levering aan de klant, is een Streaming Data Engineer van toegevoegde waarde. In het geval van de zelfsturende auto mag duidelijk zijn dat de vertraging tussen de camerabeelden en het sturingssysteem van de auto zo klein mogelijk moet zijn.
Als tweede voorbeeld zou de situatie van de ETL Data Engineer uit deel 1 van de blogserie ook baat kunnen hebben bij een kortere feedback loop. Het gedrag van de klant kan direct worden doorgestuurd naar het Machine Learning model. Op deze manier kan de klant “on the spot” een gepersonaliseerde aanbieding krijgen waar hij/zij geen nee tegen kan zeggen.
Wie heb ik nou nodig?
Zojuist heb ik uitgelegd wat het verschil is tussen een ETL en een Streaming Data Engineer. Hoe weet je nou wanneer je welke type Data Engineer nodig hebt?
Beide Data Engineers onderscheiden zich door de expertise die zij hebben. Deze expertise is zeker verenigbaar in dezelfde persoon maar deze rockstar Data Engineers zijn niet makkelijk te vinden en waarschijnlijk niet heel goedkoop. Waarin zit het verschil?
Samengevat zet ik beide typen nog even op een rij:
Wanneer je iemand nodig hebt die verstand heeft van het data domein, datamodellen, databases, resource optimalisatie en daarnaast ook dezelfde taal spreekt als een Data Scientist, dan ben je op zoek naar de brede kennis van een ETL Data Engineer.
Mocht jouw product daarentegen principieel afhankelijk zijn van snelheid van data (throughput en latency) dan heb je een Streaming Data Engineer nodig.
Weet je nog niet zo goed wat je nodig hebt? Geen probleem! Stuur een berichtje naar thomas@adapt.nl en ik kom persoonlijk en vrijblijvend met jou in contact om te kijken wat het beste past.
In de volgende twee blog artikelen zal ik dieper in gaan op de concepten en technieken van respectievelijk de ETL Data Engineer en de Streaming Data Engineer, en de bijbehorende tools en digitale infrastructuur bespreken en illustratief toelichten.