Betrouwbare rapportages met behulp van robuuste Python code

NDW

  • Klantcase
  • Data Engineering
  • Dataconsultancy
nederlandse snelweg
NDW
Joachim-business-manager
Joachim van Biemen
Business Manager
5 min
05 Apr 2023

Het Nationaal Portaal Wegverkeersgegevens (NDW) is een waardevolle bron voor gemeenten, provincies en de rijksoverheid om inzicht te krijgen in verkeersstromen en de efficiëntie van de infrastructuur te verbeteren.

NDW ontvangt veel aanvragen voor rapportages van haar partners: de gemeenten, provincies en het Rijk. De aanvragen gaan voornamelijk over inzicht in verkeersstromen om infrastructuren efficiënter in te richten. Denk hierbij aan drukte op snelwegen, voetgangerspaden en fietspaden. Voorbeelden van data die in een rapportage kunnen staan: wat is de snelheid en lengte van voertuigen op een snelweg, hoelang staat iemand bij een fietsstoplicht en hoeveel mensen komen voorbij een bepaald punt? De partners van NDW kunnen deze rapportages opvragen via Dexter, een online platform.

NDW verzamelt de data zelf en wil deze data in bruikbare vorm bij de eindgebruiker aanbieden. Het proces hiervoor wilden ze graag vereenvoudigen. Ze gebruikten Python en voor het schrijven van de code schakelden ze de hulp in van onze Data Engineers. Ondertussen zijn we al sinds 2018 datapartner van NDW. We helpen we ze door de inzet van Python ontwikkelaars in de DevOps teams van NDW met het beschikbaar maken van de data voor rapportages.

Aanpak

De aanpak bestond uit twee fases: de start-up fase en de productiefase.

Start-up fase: we hielpen NDW met het maken van rapportages en schreven de code in Python. Data werd hierdoor geautomatiseerd, verzameld, getransformeerd en geaggregeerd. We leverden de rapportages op in Excel omdat de overheidsspecialisten de data zelf hierin kunnen bewerken. Daarnaast konden partners van NDW eenvoudig de rapportages inzien via Excel.

Productiefase: in de productiefase maakten we de rapportages toekomstbestendig en optimaliseerden we de beheerbaarheid en schaalbaarheid van de Python code. We identificeerden zwakke plekken en zetten deze juist neer in de code. Daarnaast identificeerden we knelpunten op het gebied van snelheid en foutgevoeligheid. Door de optimalisaties verliep het gehele proces sneller en was het minder foutgevoelig. De datakwaliteit en betrouwbaarheid van de rapportages is hierdoor verhoogd.

Eén voorbeeld van een optimalisatie is het versnellen van de zoekresultaten: als een partner van NDW een rapportage aanvraagt, lopen er verschillende processen op de achtergrond die de data voorrekenen. Dankzij de robuuste code halen we de informatie snel op en presenteren het aan de gebruiker.

Gebruikte technieken

Om deze rapportages te realiseren, combineerden we verschillende technieken. We sloegen de gebruikte data op binnen de Cloud omgeving van Microsoft Azure, zowel op Blob Storage als in PostgreSQL databases. Wanneer een gebruiker een rapportage opvraagt, wordt een Python job aangemaakt op het Kubernetes cluster. Het script haalt de data op uit de eerdergenoemde bronnen, hierna worden de transformaties uitgevoerd, en de gevraagde rapportages worden in een Excelrapportage gezet. De gebruiker kan deze vervolgens downloaden.

data architecture NDW
De gebruiker vraagt een rapportage aan op het Dexter platform. Via een Java process wordt er een YAML-file aangemaakt, welke een Kubernetes pod aanmaakt. Ook wordt er op basis van de input van de gebruiker een JSON-file aangemaakt, died e details van de rapportage-aanvraag van de gebruiker bevat. Deze JSON-file heeft het Python script nodig als input om de juiste rapportage te maken. Het Python script haalt vervolgens de data uit de bronnen in de Azure Cloud omgeving, maakt de rapportage, en maakt deze beschikbaar voor de eindgebruiker.

Resultaat

NDW is nu beter in staat om snel, betrouwbare rapportages met een hoge datakwaliteit te bieden aan haar partners. De dataverwerkingsprocessen zijn beter te beheren doordat de code beter gestructureerd is en efficiënter is ingericht. Zo is het werk makkelijker overdraagbaar geworden aan andere Python ontwikkelaars.

Ben jij opzoek naar een partij die je kan helpen met het schrijven van Python code? Digital Power is dé expert in de markt en kunnen dit voor je doen!

Meer weten?

Business Manager Joachim gaat graag met je in gesprek over wat we als datapartner voor jou en je organisatie kunnen betekenen.

1x per maand data insights, praktijkcases en een kijkje achter de schermen ontvangen?

Meld je aan voor onze maillijst en blijf 'up to data':