Use Case: Live data in een BI-toepassing

Introductie

Bedrijven worden meer en meer gedwongen om data-gedreven te werken. Niet alleen verzamelen we met zijn allen meer en meer informatie, we raken ook steeds meer gewend aan het gebruik van data in onze dagelijkse activiteiten en processen. Een belangrijke stap daarin is het gebruik van een Business Intelligence (BI) toepassing om de data op een intuitieve manier te ontsluiten en visualiseren. Deze data kan dan komen van het welbekende Microsoft Excel, database warehouses, triple stores of andere data-opslag methodieken. Bij het Kadaster geloven we dat de data direct bij de bron vandaan moet komen, en ontsluiten we deze vaak met Application Programming Interface (APIs). En dus is het de moeite waard om uit te zoeken hoe we live data in een BI-toepassing, Tableau, kunnen realiseren.

BI Toepassingen en Tableau

Business Intelligende (BI) is, volgens Gartner, de verzamelnaam voor de applicaties, infrastructuur, tooling en best-practices noodzakelijk voor de analyse van data, met als doel optimale beslissingen te doen en kwaliteit te verbeteren. Voorbeelden van tooling in deze markt zijn Qlikview, Microsoft PowerBI en Tableau.

Het doel

Het doel van deze use case was om een dashboard te maken op een intern beschikbare API, waarin terugmeldingen op de basisregistraties van het Kadaster kunnen worden opgehaald. Dit dashboard moet informatie bevatten over de verwerkingstijd en hoeveelheid terugmeldingen die er op enig moment bij de verschillende landelijke voorzieningen staan en kan gebruikt worden om de kwaliteit van dit proces beter in kaart te brengen. Omdat deze data ontsloten moet worden met een API, is er geen standaard connector beschikbaar vanuit de meeste BI toepassingen. Er moet dus een manier worden gevonden om deze API aan te spreken vanuit de BI toepassing en de data daarmee live beschikbaar te stellen, alsof het een directe connectie met de database betreft.

Aanpak

Allereerst moet er gekozen worden met welke BI toepassing er gewerkt gaat worden. De keuze valt hierbij al snel op Tableau, dat de mogelijkheid biedt om data op te halen vanuit een Web Data Connector. Hiervoor is naast kennis van de BI toepassing ook kennis van Javascript vereist. Deze web data connector is een combinatie van een web-pagina met scripting om de relevante data op te halen. Wanneer we deze web data connector (lokaal) hebben gebouwd, moet hij tevens beschikbaar worden gesteld naar de buitenwereld. Dit doen we door de web data connector neer te zetten in een Docker container en deze te draaien op een Virtual Machine in de Microsoft Azure cloud. Zodra de web data connector beschikbaar is en we de data hiermee kunnen ophalen, bouwen we een dashboard op de opgehaalde data.

Docker containers & de cloud

Bij het Data Science team van het Kadaster gebruiken we met enige regelmaat Docker om de gebouwde demonstrators of applicaties beschikbaar te stellen. Docker is een manier om code en dependencies te bundelen als een lichtgewicht applicatie dat uitgerold kan worden op een verscheidenheid aan systemen en platformen. Het platform wat wij hiervoor gebruiken is onze Data Science Kadaster Virtual Machine (VM) in de Microsoft Azure cloud omgeving. Dit is in feite onze eigen server, waar we de verschillende demonstrators gecontroleerd en schaalbaar kunnen hosten.

Het resultaat

In Figuur 1 vinden we een beeld van hoe de Terugmelddata web connector er uit ziet. Omdat er geen uitgebreide keuzes zijn in de API over welke data er wel of niet opgehaald moet worden, is er voor gekozen om een niet al te uitgebreide web-pagina neer te zetten waar de data simpelweg met één knop binnen gehaald kan worden.

Figuur 1 ― Web-pagina van de Web Data Connector

Wanneer we op de knop drukken wordt er achtereenvolgens:

  1. De ruwe data binnen gehaald bij de API
  2. Data transformaties uitgevoerd door Javascript
  3. De ge-transformeerde data als relationele data in Tableau ingelezen

Uiteindelijk resulteert zich dat in een dataset waarin we - met deze web data connector - de efficientie van ons terugmeldproces in kaart kunnen brengen. Hoe lang lopen bepaalde terugmeldingen al? En worden deze binnen de targets afgehandeld? Visueel kun je het dashboard vinden via deze link. Let wel dat deze resultaten gebaseerd zijn op dummy data met eenzelfde structuur als de originele data.