Wekelijkse Sales Rapportage

Inleiding

Met appareto.Tup virtual appliance kunnen periodiek geautomatiseerd rapportages gegenereerd worden. Als voorbeeld een wekelijkse update van de top 10 van klanten in voorgaande periode.

Overzicht architectuur

In woorden:

  1. De Business heeft een aantal wensen m.b.t. de Sales Rapportage, de Top 10 Klanten is er daar één van. Deze willen ze graag wekelijks geautomatiseerd per email toegestuurd krijgen.
  2. V.w.b. Applicaties is daarvoor een Orchestration Service nodig die periodiek een Flow met een aantal taken opstart: Filter Customers om het voor een deelverzameling van de klanten te doen, bv voor bepaalde regio. Load Data haalt de relevante data uit achterliggende systemen op voor deze klanten waarna Genereer Rapport de data analyseert en het rapport genereert. In de laaste stap Distribueer Rapport wordt het naar een lijst van medewerkers gezonden.
  3. Concreet is dat binnen de interne Infrastructuur geimplementeerd m.b.v. de appareto.Tup virtual appliance, meer specifiek wordt er voor dit rapport gebruik gemaakt van Python en R taken die draaien in Docker in het lokale netwerk, maar zo zijn opgezet dat ze ook werken in een Cloud omgeving.

Implementatie inkijkjes

Flow en Taak definitie

Als orchestration component wordt Prefect server gebruikt. De flow en tasks definieer je in Python. In dit geval gebruiken we ook een ShellTask om m.b.v. een al bestaand R programma een Rmarkdown gebaseerd rapport te genereren. Onderstaand de code gestript van alle “extra’s”:

Docker gerelateerd

Om de flows portable te houden verpakken we ze als Docker images, dan kunnen ze op het interne netwerk of in de cloud uitgevoerd worden. En naast gebruik in docker-compose zijn ze ook geschikt voor gebruik in Kubernetes. De Dockerfile ziet er ongeveer zo uit:

De docker-compose.yml file heeft onderstaande inhoud:

DIY

Afgezien van klantspecifieke code en appareto.Tup virtual appliance specifieke componenten kun je bovenstaande m.b.v. de volgende open source componenten ook zelf implementeren:

Eric van Esch
Eric van Esch
Data Engineer/ Data Scientist / Application Developer

Mijn interesse ligt bij het ontwikkelen van kwalitatieve en kwantitatieve modellen en deze implementeren in data-gedreven beslissing-ondersteunende applicaties.

Gerelateerd