Marcel-Jan Krijgsman, data engineer bij DIKW, maakte vier jaar geleden de overstap van database beheer naar data engineering. Uit gesprekken met data scientists en data analisten bleek dat er nogal wat verschillende meningen zijn over wat data engineering is en wat een data engineer doet. Data engineering is een groot vakgebied en het beeld over data engineering en het vak zelf ook is veranderd. Daarom deelt Marcel-Jan graag zijn inzichten.
In eerste instantie hoopte Marcel-Jan dat een data engineer een soort database beheerder was voor Big Data. Met zijn jarenlange ervaring in beheer dacht hij aanvankelijk dat data engineering alleen wat meer programmeren en DevOps was. Hij was er van overtuigd dat zijn ervaring hem zou helpen.
Maar uit gesprekken met data scientists hoorde Marcel-Jan dat data engineers eigenlijk data scientists ondersteunen. Ze maken data klaar en zorgen dat data scientists door de data kunnen itereren. Gaandeweg kwam hij erachter dat er genoeg data engineers zijn die niets met data science te maken hebben. Data engineers leveren gewoon data voor de organisatie zodat die data gedreven, dat is wat het management hoopt, gaat opereren.
Marcel-Jan hoorde over de jaren verschillende meningen over wat een data engineer eigenlijk doet. Die meningen liepen uit één van een data store specialist tot een Java programmeur. In de literatuur en blogs op internet wordt beweerd dat men Java moet kennen als data engineer. Anderen beweren dat kennis van Python genoeg is of dat SQL voldoende is.
Marcel-Jan kwam tot de conclusie dat data engineering een veel breder werkterrein is dan hij had verwacht. Voor verschillende bedrijven en organisaties en verschillende mensen kan data engineering totaal iets anders betekenen.
Hij kwam erachter dat collega’s die met goede oude data warehouses en BI werkten zichzelf ook data engineers noemden. Toen hij bij DIKW aan de slag ging leerde hij het belang van data modelling. Je kunt wel een hoop ruwe data bij elkaar gooien, maar als de data gemodelleerd en inzichtelijk wordt gemaakt kan dat een groot verschil in efficiëntie betekenen voor data scientists en data analisten. En voor de gehele organisatie. Een oud-collega die Marcel-Jan tegen het lijf liep, was verbaast dat BI nog bestond. Zij deden niets meer met BI. Wat er voor in de plaats was gekomen werd niet duidelijk.
Een andere term die in data engineering veel voorbij komt is “pipelines.” Voor Marcel-Jan was het in eerste instantie niet duidelijk wat daar mee werd bedoeld. Wellicht kwam dit omdat iedereen er een andere betekenis aangaf. Was dit een specifieke manier van werken, zoals men bijvoorbeeld bij containerization ziet? Of wordt er een REST API end point gebouwd? Of was het misschien een manier om data van A naar B te brengen met de tools die prettig zijn om mee te werken? Volgens Marcel-Jan refereren pipelines aan Continuous Intergration/Continuous Deployments (CI/CD). Dus dat er een code in plaats van data wordt uitgerold in een pipeline en waarbij er versiebeheer op wordt gedaan en de kwaliteit van de code wordt gecontroleerd.
Marcel-Jan is er inmiddels van overtuigd dat data engineering zo’n groot vakgebied is dat het onmogelijk is om alles in het vakgebied te leren. Het wordt helemaal lastig als je dit allemaal alleen probeert te doen. Het kost namelijk jaren om een goede Java/Python programmeur te worden die zich op het gemak voelt met vier typen data stores en databases, die een REST API uit het blote hoofd bouwt en het liefst in de cloud en op Kubernetes. En daarnaast de code versies bijhoudt in een CI/CD pipeline en ook nog eens de data op een prettige wijze modelleert. Bedrijven hebben grote moeite om dit soort mensen te vinden. En elke data engineer heeft zijn of haar sterkten en zwakten.
Maar om data engineering zoveel omvat en data engineers van veel markten thuis moeten zijn ontwikkelde DIKW voor de DIKW Academy de cursus Certified Data Engineering Professional (CDEP). Marcel-Jan is één van de docenten. De bedoeling is om de cursisten een stevige steun in de rug te geven op weg in het data engineering land. De cursus is ontwikkeld met vier docenten en vier collega’s hebben de modules mede ontwikkeld.
En dan terugkomend op de vraag wat data engineering is. Marcel-Jan heeft ervaren dat data engineering een combinatie is van meerdere expertises. Niet alle expertises zijn vereist bij veel bedrijven. Voor sommige bedrijven en organisaties zijn met bepaalde expertises niet of nauwelijks bezig omdat ze de focus ergens anders op hebben gericht. En niet alle data engineers hebben al deze ervaring opgebouwd.
Ruwweg kunnen zes expertises worden onderverdeeld:
– Databases en data stores, zoals RDBMS-en, data lakes, document stores, graph databases, etc.
– Data modelling. Essentieel om de data effectief te kunnen uitvragen, bijvoorbeeld door gebruik van Data Vault.
– Development. Kies hier de favoriete programmeertaal, het kunnen transformeren van data, het bouwen van REST API’s en ook CI/CD.
– Containerization. Meestal Docker en Kubernetes.
– Ondersteuning voor Machine Learning. Modellen in productie brengen en ze onderhouden.
– De cloud.
Daarnaast zijn er ook deze disciplines waar men het nodige over moet weten, zoals data kwaliteit, data governance, security, privacy en ethiek.
Duidelijk is dat er dus veel variaties zijn binnen data engineering. Zo is er Hadoop, MongoDB, Elasticsearch, graph databases, Docker, Kubernetes, NiFi, Python, pandas, Spark, etc. Er valt heel veel te leren. Elke keer als Marcel-Jan een nieuw concept of product leert is hij onder de indruk van de nieuwe ideeën die ermee gepaard gaan. Dat geeft veel energie. De jaren dat Marcel-Jan nu werkzaam is, is het vak zijn geen moment saai geweest.
Dan blijft de vraag hoe word je data engineer? Daar valt zoveel over te schrijven dat men daar een apart blog aan kan wijden. Alles over data engineering leert men in de CDEP cursus van DIKW.