Redis est un SGBD In-memory, tu parles plutot d'un SGBDR In-memory, comme Voltdb ou SAP HANA ?
J'avais pensé au début à utiliser ce genre de système comme zone tampon pour mes traitement, tout en gardant une persistance en base de données conventionnel type MySQL. Mais je vois pas l'intérêt si ce n'est rajouté une couche qui je pense peut être plus problématique qu'autre chose, car il me faut de la haute disponibilité, et j'ai peur que implémenter cette fameuse couche entre mon SGBD In-memory (genre Redis) et mon SGBDR MySQL me fasse perdre plus de temps, alors que si tout est déjà sur Redis, avec une bonne configuration suffit.
Pour les SGBDR In-memory, faut que je regarde de plus prêt, ou même les SGBD NewSQL....
Pour l'histoire d'un indicateur composite, je vais te donner un exemple concret pour comprendre que devoir recalculer un composite me bouffe trop de temps :
- Indicateur : A+B+C+D+E+F+G+H+I+J+K+L+M+N
- Indicateur "A" : ((O > 78 && P > 7)?((Q>=0.28)?13.26*R:((Q>=0.25)?11.31*R:((Q>=0.21)?9.36*R:((Q>=0.18)?7.41*R:((Q>=0.14)?5.46*R:((Q>=0.12)?3.51*R:0)))))):0)
- Indicateur "O" : (@((100*AA)/BB) === false ? 0 : (100*AA)/BB)
- Indicateur "P" : (@(CC/DD) === false ? 0 : CC/DD)
Donc au final, voici une petite idée du calcul à traiter dynamique :
(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 78 && (@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 7)?(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.28)?13.26*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.25)?11.31*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.21)?9.36*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.18)?7.41*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.14)?5.46*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.12)?3.51*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):0)))))):0) + (((@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 78 && (@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 7)?(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.28)?13.26*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.25)?11.31*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.21)?9.36*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.18)?7.41*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.14)?5.46*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.12)?3.51*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):0)))))):0) + (((@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 78 && (@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 7)?(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.28)?13.26*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.25)?11.31*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.21)?9.36*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.18)?7.41*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.14)?5.46*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.12)?3.51*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):0)))))):0) + (((@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 78 && (@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 7)?(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.28)?13.26*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.25)?11.31*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.21)?9.36*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.18)?7.41*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.14)?5.46*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.12)?3.51*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):0)))))):0) + (((@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 78 && (@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 7)?(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.28)?13.26*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.25)?11.31*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.21)?9.36*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.18)?7.41*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.14)?5.46*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.12)?3.51*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):0)))))):0) + (((@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 78 && (@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 7)?(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.28)?13.26*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.25)?11.31*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.21)?9.36*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.18)?7.41*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.14)?5.46*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.12)?3.51*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):0)))))):0) + (((@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 78 && (@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 7)?(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.28)?13.26*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.25)?11.31*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.21)?9.36*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.18)?7.41*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.14)?5.46*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.12)?3.51*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):0)))))):0) + (((@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 78 && (@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 7)?(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.28)?13.26*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.25)?11.31*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.21)?9.36*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.18)?7.41*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.14)?5.46*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.12)?3.51*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):0)))))):0) + (((@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 78 && (@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 7)?(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.28)?13.26*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.25)?11.31*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.21)?9.36*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.18)?7.41*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.14)?5.46*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.12)?3.51*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):0)))))):0) + (((@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 78 && (@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 7)?(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.28)?13.26*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.25)?11.31*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.21)?9.36*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.18)?7.41*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.14)?5.46*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.12)?3.51*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):0)))))):0) + (((@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 78 && (@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 7)?(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.28)?13.26*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.25)?11.31*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.21)?9.36*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.18)?7.41*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.14)?5.46*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.12)?3.51*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):0)))))):0) + (((@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 78 && (@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 7)?(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.28)?13.26*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.25)?11.31*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.21)?9.36*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.18)?7.41*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.14)?5.46*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.12)?3.51*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):0)))))):0) + (((@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 78 && (@((100*AA)/BB) === false ? 0 : (100*AA)/BB) > 7)?(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.28)?13.26*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.25)?11.31*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.21)?9.36*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.18)?7.41*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.14)?5.46*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):(((@((100*AA)/BB) === false ? 0 : (100*AA)/BB)>=0.12)?3.51*(@((100*AA)/BB) === false ? 0 : (100*AA)/BB):0)))))):0)
.....
Et encore la on a seulement 4 niveaux d'imbrication, sur l'indicateur composite tout en haut, les 14 indicateurs qui le compose ressemblent à quelques petits détails à l'indicateur "A".
Donc recalculer à chaque fois
Partager