Organisaties gebruiken in toenemende mate data voor beter inzicht en (proces-)optimalisatie. Belangrijk hierbij is te realiseren dat de hoeveelheden en bronnen heel divers kunnen zijn. Data wordt tenslotte gegenereerd en opgeslagen in een verscheidenheid aan technologieën en systemen. Om deze data tot nut te maken, worden ‘data pipelines’ ontwikkeld. Zo kun je systematisch en betrouwbaar bronnen ontsluiten. 

Door Koen, data engineer bij Datalab

Met een ‘data pipeline’ bedoelen we een verzameling van stappen -of taken- die in een logische volgorde worden uitgevoerd met als resultaat een bruikbare dataset. Deze dataset kan vervolgens voor verschillende doeleinden zoals analytics en machine learning ingezet worden. Het ontwikkelen en beheren van pipelines is in de praktijk echter behoorlijk lastig. Dit is waar Apache Airflow om de hoek komt kijken. Airflow is een ‘orchestrator tool’: een hulpmiddel om verschillende systemen aan te sturen en met elkaar te verbinden. Je kunt Airflow vergelijken met een spin in een web. Het vangt verschillende systemen en verbindt ze door middel van pipelines.

Airflow is intern ontwikkeld door Airbnb, maar is in 2015 als open source project vrijgegeven en wordt vandaag de dag door vele developers wereldwijd onderhouden en verbeterd. Airflow is primair bedacht voor het bouwen, beheren en monitoren van pipelines. Het omvat dan ook een planner die alle pipelines op de juiste momenten activeert en een uitgebreide grafische user interface om het verloop nauwkeurig te kunnen volgen en te beheren. Airflow zelf is geschreven in Python, ook het bouwen van pipelines gebeurt door middel van deze programmeertaal. Dit biedt enorm veel flexibiliteit in het definiëren van de verschillende stappen, omdat je deze zelf kunt schrijven door middel van relatief eenvoudige code. 

Airflow is ontwikkeld met het idee dat het bedrijf meer grip wilde krijgen op de talloze stromen van batch processing* binnen de organisatie.

*) Batch processing betekent het op basis van vaste intervallen verwerken van batches data.

Om die reden is het door Datalab omarmt als één van onze belangrijkste tools. We gebruiken het namelijke ook voor onze ETL-processen, ofwel Extract, Transform en Load. In een standaard ETL-proces ontsluiten we één of meerdere databronnen, transformeren en valideren we de data en slaan we dit op in een datalake, database of beide. Op die manier brengen we data uit verschillende bronnen op één plek samen voor onze klanten in een formaat dat geschikt is voor hun dataproducten.

Airflow beperkt zich niet tot ETL-processen. Je kunt het voor veel andere doeleinden gebruiken: het periodiek trainen en up-to-date houden van machine learning modellen, informatie-uitwisseling tussen systemen/applicaties zoals het structureel bijwerken van een CRM-systeem met boekhoudsoftware, of het beheren van secundaire bedrijfsprocessen.

Voorbeeld van user interface