June 10, 2020

Data Warehouse: exporteer data uit je app om te analyseren

Je webapplicatie verzamelt heel veel belangrijke bedrijfsinformatie; denk bijvoorbeeld aan het aantal leads, het aantal sales en de voorraad producten. Die data kun je onder andere gebruiken om te meten hoe effectief de applicatie is, hoe de tool gebruikt wordt en hoe het ervoor staat met de targets.

Voor veel bedrijven is dit een maandelijks terugkerende rapportage om de voortgang te meten. Het verzamelen van data uit je applicatie is dus een belangrijke taak. Maar hoe exporteer je al die data uit je applicatie, en importeer je het naar je eigen analyse software?

Grote hoeveelheden data uit een applicatie exporteren brengt vaak problemen met zich mee. De database is zo groot, en zit vol met allerlei regels die de export vertragen of zelfs blokkeren, dat het soms wel dagen kan duren om alles te verzamelen. De data is namelijk op een bepaalde manier opgeslagen om optimaal te kunnen werken in de webapplicatie. Zo zijn er beveiligingsregels en toegangsregels, en wordt er veel extra informatie opgeslagen. Al die gegevens zijn nodig om te applicatie goed te laten werken, maar ze maken het onnodig moeilijk om de data uit de applicatie te exporteren.


Data warehouse

De oplossing hiervoor is eigenlijk heel simpel. Naast de database van de webapplicatie, creëren we een externe database, ook wel een Data Warehouse genoemd. Deze extra database wordt niet gebruikt voor de productie van de applicatie, maar voor het analyseren van de data.

Zo is de data voor productie bijvoorbeeld geoptimaliseerd om real-time informatie te tonen en zo snel mogelijk transacties te verwerken, terwijl dat bij de data voor analyse niet nodig is. Deze data kan dan ook in een geoptimaliseerde vorm worden opgeslagen in de data warehouse.

De database van de applicatie wordt ieder uur gesynchroniseerd met de data warehouse, zodat hier steeds maar een klein deel van geüpdatet hoeft te worden. Dit maakt het proces veel sneller, en zorgt ervoor dat de data op elk moment beschikbaar is om te worden geïmporteerd in jouw analyse software (denk aan rapportage software of Microsoft Excel).


Hoe werkt een data warehouse?

Data warehouses kunnen op verschillende manieren worden ingericht. JAM-IT gebruikt hiervoor een combinatie van Singer en Apache Airflow.

Singer is een open source standaard voor ETL. Deze afkorting staat voor Extract, Transform, Load, oftewel het kopiëren en optimaliseren van data vanuit één of meerdere bronnen naar een ander systeem. Wij gebruiken deze standaard om de data uit de applicatie te exporteren en te importeren naar de data warehouse.

Om deze taak in te regelen gebruiken we Apache Airflow. Dit is een open source platform om workflows te beheren, waaronder het periodiek uitvoeren van taken. Dit gebruiken wij om ieder uur, volgens de Singer standaard, de database te synchroniseren met de data warehouse. Airflow regelt vervolgens alles wat hierbij komt kijken, zoals het inregelen van de taken, het bijhouden van de status en het melden als er een taak niet uitgevoerd kan worden.

Op deze manier wordt de data warehouse continu gesynchroniseerd met de data uit de applicatie. Hier kan op elk gewenst moment de data uit gedownload worden om te worden geanalyseerd.

 

Hoe kun je de data analyseren?

De data kan vanuit de data warehouse op verschillende manieren geïmporteerd worden voor gebruik. Het kan bijvoorbeeld geüpload worden naar een rapportage tool, of omgezet worden naar een .csv bestand, zodat hij verwerkt kan worden in Microsoft Excel.

Nu kunnen alle gewenste queries erop losgelaten worden. Denk aan statistieken zoals totalen, de som, het maximum of het gemiddelde van een bepaalde dataset. Omdat alle data geoptimaliseerd is en verzameld is op één plek, kunnen de analyses veel sneller gemaakt worden.

Als bijkomend voordeel ben je hierbij niet afhankelijk van hoe de data is opgeslagen in de database van de applicatie. De data in de data warehouse is als het ware schoongemaakt en opnieuw gestructureerd zodat de eindgebruiker er goed mee kan werken.

Ook een data warehouse laten bouwen voor jouw app? Neem contact met ons op.