Bonjour à tous,
Description de la fonctionnalité métier:
J'ai un pc qui lance des test (ce test commence à une certaine heure et j'ai la durée du test)
Je cherche à faire des calculs de charges heure par heure (pour faire un graphique qui indique la charge du ou des pc).
Je cherche à faire cela au mieux avec elaticsearch (et si ca se trouve ES le fait nativement)
Dans un premier temps, je suppose que ce serait mieux de stocker la date de début, et celle de fin, plutôt qu'une durée (pour éviter des calculs intermédiaire).
Problématique:
Un test peux démarrer à 7h45 et se terminer à 9h10. Dans ce cas, je veux comptabilité heure par heure la charge.
- 15 minutes pour la tranche de 7h
- 1 heure pleine pour 8h
- 10 minutes pour la tranche 9h
Voilà ce que j'ai pensé faire, à vous de me dire si c'est possible ou pas (avant que je ré-indexe toute les données dans ce sens)
Je pensais stocker à l'insertion pour chaque test, une liste nested avec chaque tranche horaire et la durée occupé par le test.
Exemple avec mon test ci-dessus
{
id:"1",
produit:"clavier",
charges:[
{
start:"2015-07-28T07:45:00",
duree:"15"
},
{
start:"2015-07-28T08:00:00",
duree:"60"
},
{
start:"2015-07-28T09:00:00",
duree:"10"
}
]
}
Ce mapping me permettrait de retrouver tous les tests pour une tranche horaire précise. Par contre, l'aggrégation histogramme va être capable de ne sommer que la tranche horaire qui lui correspond (dans le nested).
D'avance merci.