Een gesprek tussen Harmen (Senior data scientist) en Koen (Data engineer).



Harmen: ‘Een belangrijk deel van de werkzaamheden van een data scientist is eigenlijk het werk van een data engineer. Wat is data engineering precies en waarom zou je daarvoor specifiek iemand voor willen aannemen? We vragen het aan Koen, onze data engineer. Koen, wat doe jij dagelijks als data engineer?’

Koen: ‘Als data engineer ben ik verantwoordelijk voor het beheer en inregelen van datastromen. Dat gaat dus over het ontsluiten van verschillende online en lokale databronnen. Ook het opschonen daarvan behoort daartoe. Het zorgen dat het in het juist format wordt opgeslagen zodat een analist zonder verdere moeite direct daarmee een analyse kan uitvoeren.’

Harmen: ‘Velen denken bij data science niet aan data engineering, of überhaupt het ontsluiten van data, maar eerder aan het bouwen van dashboards. Hoe verschilt deze rol? Hebben bedrijven soms een blinde vlek voor de functie van data engineering?’

Koen: ‘Ja, ik denk dat veel bedrijven dat niet scherp op het netvlies hebben. Ik denk dat de meeste analisten, of mensen die dashboards bouwen, dus data visualiseren, sowieso wel te maken hebben met data engineering. Uiteindelijk moet je de data in het juiste format uit een bepaalde bron betrekken. Maar op het moment dat dit op een grootschalige manier plaatsvindt, heb je absoluut een data engineer nodig. Hij of zij focust zich eigenlijk volledig op die taak. Want vergis je niet in de hoeveelheid databronnen die daarbij komen kijken, op het moment dat je het grootschalig aanpakt. Dan wordt het als snel teveel voor de analist die zich eigenlijk alleen op het dashboard of de analyse wil focussen.’

Harmen: ‘Wat je regelmatig hoort, is dat een analist 80 procent van de tijd bezig is met het opschonen en koppelen van data. Is dit dan ook typisch iets waar je een data enigineer voor kunt inzetten?

Koen: ‘Absoluut, ik denk dat het meeste werk waar een analisten zijn tijd aan kwijt zijn, het opschonen van de data is. Dus het is alleen maar logisch dat daar specifiek iemand zich volledig op richt, zodat al dat soort werk niet langer meer bij de analist ligt. De analist kan zich dan volledig focussen op waarvoor hij is aangenomen: het maken van een analyse of van een dashboard. Dus ja, zeker!

Harmen: ‘Je zegt ‘proces inrichten’, wat bedoel je daar precies mee? Bij het opschonen van data kan ik me iets voorstellen, maar gaat ’t bijvoorbeeld ook over het koppelen van data?’

Koen: ‘Ik denk eigenlijk alles vanaf het verkrijgen van de data tot het prepareren voor de analist is volledig in te richten als een proces. Dus inderdaad, het ontsluiten uit verschillende bronnen, vervolgens -mits nodig- het opschonen van die data. Ook het koppelen van data, misschien op een andere manier formatteren zodat het allemaal op de juiste manier beschikbaar is voor de analist. Daardoor heeft de analist daar geen werk meer aan heeft.’

Harmen: ‘Het gaat dus bij het werk van een data engineer ook om de softwarematige inrichting zodat datastromen permanent ontsloten worden. Klopt dat?’

Koen: ‘Absoluut, je bent er eenmalig best veel tijd aan kwijt om het proces grondig te doorgronden en een inschatting te maken wat er allemaal nodig is. Als dat eenmaal gedaan is, wil je er daarna eigenlijk zo min mogelijk omkijken naar hebben. Het proces zorgt ervoor dat al deze stappen volledig automatisch doorlopen worden, zodat uiteindelijk een kant-en-klaar databron ontsloten kan worden door de data-analist.’

Harmen: ‘Dat betekent dus dat een data-analist goed in staat is om ad hoc een databron te ontsluiten. Bijvoorbeeld als een keer een datasetje extra nodig is, en dat je data engineer vooral ingezet wordt op datasets die veelvuldig gebruikt zullen worden?’

Koen: ‘Ja, ik denk dat het handig is als een analist eerst verkent welke data nodig is. Dus misschien is het wel goed om eerst een ad hoc import van een databron te doen. Vervolgens, als zeker is dat een analyse of dashboard in productie komt, de data engineer het proces dusdanig stabiel gaat inrichten zodat de analist er geen omkijken meer naar heeft en de analyses constant blijven draaien, of het dashboard constant de juiste data gevoerd krijgt.’

Harmen: ‘Vroeger bestond ’t werk van een data engineer in mijn beleving vooral uit het programmeren. Is dat nog steeds zo? En komen er nog andere zaken bij om de hoek?’

Koen: ‘Het werk van een data engineer bestaat nog steeds primair programmeren. Je moet die processen uiteindelijk op een juiste manier programmeren. Uit ervaring weet ik dat er tegenwoordig wel meer alleen dan programmeren bij komt kijken. Je moet de logica van de data doorgronden, dat kost best wat tijd. Ook moet je goed begrijpen hoe een databron in elkaar steekt, dus begrijpen wat voor data je binnenhaalt. Dat is heel relevant voor het goed kunnen het inrichten van processen. Regelmatig sparren met de analist om zijn wensen goed ogen te houden is ook van belang. Je moet immers precies weten wat hij uiteindelijk wil en wat hij nodig heeft voor de analyses of het dashboard. En niet onbelangrijk, je bent ook regelmatig in overleg met de eindklant. Je moet weten welke databronnen ze willen ontsluiten, welke data ze waar vandaan willen halen. Dus er komt veel meer bij kijken. Het is een totaalpakket waar je vandaag de dag mee te maken krijgt.’

Harmen: Je hebt zelf geen achtergrond als programmeur. Hoe ben je hier zo ingerold?

Koen: ‘Dat is inderdaad niet een heel standaard traject wat ik heb doorlopen. Ik heb een achtergrond in politicologie en was bijzonder geïnteresseerd in het gedeelte statistiek. Bovendien vond ik programmeren bijzonder interessant. Vervolgens, na mijn studie, rolde ik als vanzelf in de functie als data-analist. Gaandeweg kreeg ik steeds meer te maken met het prepareren van datasets, iets waar een analist over het algemeen de meeste tijd aan kwijt is. Uit interesse ben ik steeds meer in het prepareren en het inrichten van dataprocessen verzeild geraakt. Dat is nu eigenlijk waar ik me voornamelijk op focus.’

Harmen: ‘Stel, iemand wil data engineer worden en heeft een achtergrond als business analist, BI-er of data scientist, wat zou je hem of haar aanraden?’

Koen: ‘Persoonlijk heb ik tot nu toe het meeste gehad aan het focussen op het goed onder de knie krijgen van programmeertaal, voornamelijk Python. Je moet ook handig zijn in Bash-commands, daar valt heel veel te winnen. Goed leren omgaan met cloud-tooling. Niet elk bedrijf werkt al in de cloud, maar je ziet toch wel dat heel veel data engineering vandaag de dag plaatsvindt in de cloud. Dat maakt het vaak stuk makkelijker en flexibeler voor een data engineer om de workload in de cloud te draaien. Dus focus je daarop, zorgt dat je daar bekend mee raakt.’

Harmen: ‘Je spreekt over de cloud, je kunt daarmee alle kanten mee op. Welke tooling gebruik je zelf het meest, of vind je prettig werken? Dus wat raad jij ons aan?’

Koen: ‘De laatste tijd werk ik veel met Apache Airflow. Ik ben me bewust daarin aan het bekwamen. Apache Airflow is een Python gebaseerde ETL-tool, maar het is meer dan dat. Je kunt de volledige workload erin opnemen. Eventueel kan het ingezet worden voor het trainer van modellen, die je ook kunt verwerken in een workflow. Omdat ik al bekend ben met Python, helpt mij dat goed. Vooral mijn de kennis over Python helpt bij het vertalen in bouw van pipelines. Bovendien heb je de volledige flexibiliteit van Python bij het bouwen van je pipelines. Er zijn er natuurlijk ook andere mooie tools, zoals Azure Data Factory, een sterk visueel gerichte ETL-tool. Die heeft mooie functionaliteiten, maar wat mij toch het meest aanspreekt bij Airflow is de flexibiliteit en het behoud van de programmeertaal bij het inrichten en het orkestreren van pipelines.

Harmen: ‘Nu spreek je vanuit de rol van data engineer. Als je een bedrijf moet adviseren, zou je dan ook Apache Airflow aanraden? En waarom zou een bedrijf daarvoor moeten kiezen?’

Koen: ‘Dat hangt er vanaf wat de strategie is van een bedrijf: heeft het echt een lange termijnvisie, wil serieus investeren in een goede engineeringcapaciteit, dan zou ik toch wel adviseren om te investeren in dit soort tooling. Ik ben ervan overtuigd dat dit op termijn veel meerwaarde gaat opleveren. Het is echter ook afhankelijk van ook de vaardigheden van het medewerkers. Mochten mensen niet heel erg bekend zijn met programmeren, of specifiek Python, dan is natuurlijk ook mogelijk om te kiezen voor een meer visuele tool zoals Azure Data Factory om meer klik en track de pipelines zo in elkaar te zetten.’

Harmen: ‘Koen, dankjewel voor deze uiteenzetting. Ik hoop dat onze lezers een goed beeld hebben van de functie en de relevantie van data enginering. Mocht u vragen hebben over dit onderwerp of over datagedreven werken in zijn algemeen, bel me dan. Wij kunnen u helpen bij het inrichten van uw datastromen, of helpen bij het vinden van de juiste data engineer.’