Cursus
Je hebt misschien gehoord dat data engineering het nieuwe data science is, en de enorme groei binnen het vakgebied bewijst dat. Bedrijven zien nu de waarde van data-engineers die de architectuur ontwerpen, bouwen en onderhouden die nodig is om data science en analytics te laten slagen. In een apart artikel kun je meer lezen over de verschillen tussen data-engineers en data-scientists.
Maar je vraagt je misschien ook af: wat doet een data-engineer nu eigenlijk? In dit artikel zetten we de verschillende rollen en verantwoordelijkheden van data-engineers op een rij en kijken we naar het carrièrepad dat een data-engineer kan volgen. Tot slot geven we een kijkje achter de schermen van een typisch data-engineeringproject dat je binnen een organisatie kunt tegenkomen. Als je op zoek bent naar informatie over hoe je data-engineer wordt, dan is ons aparte artikel handig. Je kunt ook lezen over hoe je een vacaturetekst voor een data-engineer schrijft als je iemand voor deze rol wilt werven.
Rollen binnen data engineering
Data engineering omvat een grote verscheidenheid aan vaardigheden, tools en systemen. Er zijn vier kerngroepen van data-engineerrollen, en elke groep moet een set aan vaardigheden en tools beheersen om het werk effectief te kunnen doen.
- Generalisten. Betrokken bij alle aspecten van het verzamelen, opslaan, analyseren en verplaatsen van data. Ze moeten een breed scala aan tools en vaardigheden kennen en kunnen gebruiken.
- Specialisten in dataopslag. Verantwoordelijk voor het opzetten en beheren van relationele en niet-relationele databases (zoals SQL, NoSQL en PostgreSQL), datawarehouses (zoals Redshift en Panoply) en bigdatasystemen (zoals Hadoop en Spark).
- Specialisten in programmeren en pipelines. Maken en beheren van de datastroom via scripts en datapipelines. Ze moeten bekend zijn met enkele programmeertalen zoals Python, Java en C++.
- Specialisten in analytics. Werken nauw samen met data-scientists en andere analyticsprofessionals in de organisatie. Ze moeten bekend zijn met analysetools (zoals Power BI en Tableau), machinelearningbibliotheken (zoals TensorFlow en PyTorch) en andere tools die analytische projecten ondersteunen (zoals ETL-tools en bigdatasystemen).
Wat doet een data-engineer? Het carrièrepad van een data-engineer
Het carrièrepad van een data-engineer kan variëren op basis van de grootte van het bedrijf en de volwassenheid van de datateams. Toch volgen de meeste data-engineers doorgaans dit pad:
- Junior data-engineer
- Medior data-engineer
- Senior data-engineer
- Senior managementrollen
Junior data-engineer
Wanneer ze net beginnen, nemen junior data-engineers meestal kleine taken op zich die bestaande systemen onderhouden en ondersteunen. Dit kan variëren van het testen van systemen en het opsporen en oplossen van bugs tot het toevoegen van features aan een bestaand systeem. In deze vroege fase neemt een junior doorgaans geen eigen project op zich, maar vervult hij of zij een ondersteunende rol voor senior collega’s.
Het belangrijkste in de eerste paar jaar als junior data-engineer is leren en praktische ervaring opdoen met de tools die later in de carrière nodig zijn. Ze leren ook hoe de verschillende teams en afdelingen samenwerken om oplossingen te vinden voor problemen en vragen die zich voordoen.
Medior data-engineer
Na ongeveer 1 tot 3 jaar kan een data-engineer doorgroeien naar mediorniveau. In deze fase komen ze vaker in aanraking met projectmanagementaspecten van het werk en moeten ze meer samenwerken met andere teams en afdelingen.
Ze krijgen meestal de verantwoordelijkheid voor het ontwerpen en bouwen van systemen die data-scientists en andere analytische teamleden ondersteunen. In deze fase staan ze mogelijk nog deels onder toezicht van een senior data-engineer. Om dit werk effectief te doen, moeten ze goede communicatieve vaardigheden ontwikkelen en goed kunnen samenwerken met andere teams.
Data-engineers kunnen zo’n 3 tot 5 jaar op dit niveau blijven. In deze periode hebben ze hun programmeervaardigheden ontwikkeld en zijn ze vertrouwd geraakt met alle tools en systemen die binnen de organisatie worden gebruikt. Ze kunnen bugs of problemen identificeren en oplossen en werken goed samen binnen en tussen teams.
Senior data-engineer
Wanneer data-engineers het seniorniveau bereiken, nemen ze meer managementverantwoordelijkheden op zich. Ze moeten mogelijk één of meer data-engineers aansturen, hen begeleiden en projecten toewijzen zodra die zich aandienen.
In deze fase is de data-engineer bedreven in de technische aspecten van de rol en kan hij of zij systemen bouwen en problemen relatief eenvoudig oplossen. Tegelijk zijn ze nauwer betrokken bij de zakelijke kant en moeten ze strategisch nadenken over de richting van dataprojecten en de langetermijneffectiviteit en optimalisatie van hun systemen.
Dit vraagt om een verandering in denkwijze, wat uitdagend kan zijn. Veel data-engineers hebben minder affiniteit met strategische en zakelijke verantwoordelijkheden en kiezen er daarom voor om niet verder door te groeien binnen het bedrijf.
Senior managementrollen
Zodra data-engineers ongeveer zes jaar of meer ervaring hebben, kunnen ze, als ze dat willen, doorgroeien naar meer leidinggevende rollen, zoals:
- Manager data engineering
- Director of data engineering
- Chief data officer
Naast een hoge mate van technische vaardigheid die op lagere niveaus is ontwikkeld, vereisen deze rollen dat de data-engineer sterke vaardigheden heeft in datainfrastructuur en data-architectuur en analytische teams kan aansturen en opschalen. Ze moeten ook processen kunnen definiëren voor het ontwikkelen van high-performancesystemen, nieuwe projecten kunnen afbakenen en SLA’s voor nieuwe en bestaande systemen kunnen definiëren en beheren.
Wat doet een data-engineer? Een typisch data-engineeringproject
Laten we eens kijken naar enkele van de rollen en verantwoordelijkheden van een data-engineer. Stel: je werkt bij een groot bedrijf dat een bezorgdienst voor eten aanbiedt via een mobiele app. De app fungeert als tussenpersoon tussen het restaurant en de bezorger. Klanten plaatsen hun bestelling in de app, waarna het restaurant een melding krijgt. Zodra het eten klaar is, wordt een bezorger gekoppeld en wordt het eten bij de klant bezorgd.
Zoals je je kunt voorstellen, kan zo’n app dagelijks veel data genereren. Van data over restaurants, bezorgers en klanten tot logs voor elke interactie in de app. Denk ook aan de data die wordt verzameld bij klantenservicegesprekken over klachten, complimenten of conflicten. Of zelfs logs van fouten die in de app optreden.
Als een data-scientist of data-analist in jouw bedrijf de opdracht krijgt om trends in bestellingen te identificeren om daarmee een machinelearningmodel te bouwen, komen ze bij jou om data over bestellingen per dag geaggregeerd te extraheren en voor te bereiden. Ze moeten de data ook kunnen splitsen tussen nieuwe en terugkerende klanten.
Zorg voor helderheid
Om dit probleem op te lossen, moet de data-engineer eerst duidelijkheid krijgen via deze stappen:
- Bepaal de granulariteit, per bestelling, per dag, week, maand, jaar. Op basis van het bovenstaande verzoek moet de besteldata per dag worden geaggregeerd met een splitsing naar klanttype (nieuw of terugkerend).
- Bepaal of er filters op de data moeten worden toegepast, zoals per land of telefoonmodel.
- Bepaal de tijdsperiode van de data. Bijvoorbeeld: over de volledige looptijd of alleen het afgelopen jaar?
- Identificeer de databronnen en/of tabellen voor deze data. Deze data staat in een centraal datawarehouse, en de data-engineer moet toegang hebben tot de ordertabel en de klantentabel. Als extra filters nodig zijn, moeten mogelijk meer tabellen worden geraadpleegd.
Data-extractie
Nu de data-engineer meer duidelijkheid heeft, kan hij of zij doorgaan met data-extractie en -verkenning via deze stappen:
- Bepaal welke joins moeten worden gebruikt tussen de orders- en klantentabel en wat de onderlinge relaties zijn (zoals welke keys gebruikt moeten worden om de tabellen te joinen). Dit vereist een gedegen begrip van SQL en datamodellering.
- Maak een categorische feature voor klanttype op basis van het aantal bestellingen dat elke klant heeft geplaatst. Deze feature moet categorieën bevatten voor ‘nieuwe klant’ en ‘terugkerende klant’.
- Beoordeel de datakwaliteit. Identificeer of ontbrekende of afwijkende data moet worden gecorrigeerd.
Als de data-engineer de data heeft voorbereid die de data-scientist of data-analist nodig heeft, moet er een API-endpoint worden gemaakt waarmee de data kan worden opgevraagd. Dit hele project kan, afhankelijk van het datavolume en de complexiteit, variëren van een paar dagen tot enkele maanden.
Gedurende dit proces kan de data-engineer met veel verschillende systemen moeten werken, afhankelijk van waar de data is opgeslagen en of extra verwerking nodig is.
Voorbeelden van systemen die in dit vraagstuk kunnen voorkomen zijn SQL Server, Hadoop of Redshift voor dataopslag, SQL om de data te bevragen en Python voor het schrijven van de scripts die de data verwerken.
Tot slot
Zoals je ziet bevat een typisch data-engineeringproject een paar kernvaardigheden die cruciaal zijn voor data engineering, zoals het bouwen van datapipelines. Wil je je leerproces versnellen en je voorbereiden op een rol in data engineering, probeer dan de Python for Data Engineering skill track op DataCamp. Wil je je eerste praktische ervaring met cloud datawarehouses opdoen, probeer dan ons Exploring London’s Travel Network Project. Dit biedt een mooie kans om direct in je browser met Amazon Redshift, Google BigQuery en Snowflake te werken. En om je vaardigheden als data-engineer aan te tonen, volg je onze data-engineercertificering.
Hopelijk heeft dit artikel je wat inzicht gegeven in de rol van data-engineers en wat ze daadwerkelijk doen. Als je overweegt om te starten met een carrière in data engineering, dan ben je nu ook beter bekend met het verwachte carrièrepad.
