We hebben op het werk een telefoonsysteem dat per kwartier verschillende gegevens over een helpdesk agent opslaat in een oracle database, bv. de totale login tijd, after call work tijd, average handling time...
De structuur van die tabellen ziet er ongeveer zo uit:
Agents
Id
Name
...
Data
Timestamp
AgentId
Login_01
Login_02
Login_03
ACW_01
ACW_02
ACW_03
...
Waarbij de 01, 02, 03, ... slaan op de verschillende producten.
Als er nieuwe gegevens in de db komen, verdwijnen er oude. Er wordt voor een dikke maand data bijgehouden.
We hebben nu een project opgezet, waarbij we op een intranet site, realtime alle gegevens van een agent kunnen bekijken.
Een extra feature is nu, dat we ook historische data gaan laten zien: per uur, dag, week, maand, kwartaal, jaar.
Maar we lopen hier dus tegen die maand limiet op.
Het idee is nu om zelf een soort database aan te leggen, waar alle data gewoon in blijft staan.
Elke kwartier runnen we dus een script dat de laatste data ophaalt en wegschrijft in onze db.
Na verloop van tijd gaat dit dus enorm veel data worden, en we zoeken de beste manier om deze gegevens op te slaan.
Een collega stelt voor om dit in xml te doen, en dan op te delen in verschillende dirs per jaar, maand, dag, ... wat wil zeggen dat we xml files moeten gaan parsen, wat volgens mij enorm traag is met zoveel data.
Mij lijkt het beter om opnieuw een db te gebruiken, met een beter structuur (niet zo ranzig als hierboven
). Maar het probleem is dan dat een aantal tabellen enorm groot gaan worden, wat dus ook niet ten goede komt aan de performance.
Wat denken jullie dat het beste is? Opslaan als xml, of toch een db gebruiken?
Zijn er dan misschien manieren om die db te splitsen, zodat de data gesplitst kan worden?
Of zijn er andere technieken?
Edit: Timestamp veld toevoegd in data tabel. Veld ziet er zo uit: 200612201115
De structuur van die tabellen ziet er ongeveer zo uit:
Agents
Id
Name
...
Data
Timestamp
AgentId
Login_01
Login_02
Login_03
ACW_01
ACW_02
ACW_03
...
Waarbij de 01, 02, 03, ... slaan op de verschillende producten.
Als er nieuwe gegevens in de db komen, verdwijnen er oude. Er wordt voor een dikke maand data bijgehouden.
We hebben nu een project opgezet, waarbij we op een intranet site, realtime alle gegevens van een agent kunnen bekijken.
Een extra feature is nu, dat we ook historische data gaan laten zien: per uur, dag, week, maand, kwartaal, jaar.
Maar we lopen hier dus tegen die maand limiet op.
Het idee is nu om zelf een soort database aan te leggen, waar alle data gewoon in blijft staan.
Elke kwartier runnen we dus een script dat de laatste data ophaalt en wegschrijft in onze db.
Na verloop van tijd gaat dit dus enorm veel data worden, en we zoeken de beste manier om deze gegevens op te slaan.
Een collega stelt voor om dit in xml te doen, en dan op te delen in verschillende dirs per jaar, maand, dag, ... wat wil zeggen dat we xml files moeten gaan parsen, wat volgens mij enorm traag is met zoveel data.
Mij lijkt het beter om opnieuw een db te gebruiken, met een beter structuur (niet zo ranzig als hierboven
Wat denken jullie dat het beste is? Opslaan als xml, of toch een db gebruiken?
Zijn er dan misschien manieren om die db te splitsen, zodat de data gesplitst kan worden?
Of zijn er andere technieken?
Edit: Timestamp veld toevoegd in data tabel. Veld ziet er zo uit: 200612201115