2012-02-07 6 views
2

Ma question est la suivante, dans la famille NoSQL, lorsque nous stockons les valeurs.Les données NoSQL doivent être des données précalculées?

La valeur stockée doit-elle être totalement prête pour l'application afin de pouvoir l'utiliser directement? Ou est-il également possible de stocker la valeur d'une manière qui peut nécessiter un traitement supplémentaire pour être utilisée pour l'application? Exemple rapide, si l'on veut calculer une valeur moyenne à partir de la journée entière, serait-il plus logique de toujours conserver la valeur moyenne stockée ou serait-il préférable d'avoir des clés, représentant chaque valeur individuelle et ensuite, faire l'application calculer la moyenne? La première approche serait plus rapide une fois la valeur obtenue, mais serait limitée pour obtenir la valeur de la journée entière, tandis que la seconde approche serait plus lente (nous devons calculer la moyenne à chaque fois), mais nous pourrions aussi calculer des valeurs moyennes par heure ...

Pour moi c'est une question de philosophie, encore une fois, devrait être les données dans la base de données NoSQL totalement prêt à être utilisé, ou il est logique d'avoir les données d'une manière qui a besoin de processus supplémentaire.

Merci beaucoup :)

+0

En outre, une considération. Si nous voulons stocker des informations précalculées pour la moyenne, cela signifierait lire et écrire tout le temps à la solution noSQL, en supposant que noSQL ne fournisse généralement aucune transaction, je n'aurais pas de données cohérentes si deux entités essayent d'extraire la moyenne actuelle et Ensuite, essayez de calculer le nouveau. –

Répondre

3

Vos considérations ne sont pas directement liés à NoSQL - ce sont des questions au niveau de l'application de décider. Cela dit, il existe des bases de données NoSQL spécifiques qui sont meilleures que d'autres dans les agrégations, en termes de performances. Cassandra par exemple. Recherchez Hadoop+Cassandra solutions qui tire parti de MapReduce pour créer des agrégats.

Voir aussi cette question similaire & réponse: NoSQL databases - good candidates for log processing/aggregation and rollup?

0

Dans ma compréhension philosophie NoSQL dit de stocker des valeurs précalculées prêtes à l'emploi.
Nous pouvons envisager un décrochage, en recalculant par exemple la moyenne quotidienne chaque heure.
Je peux voir NOSQL comme RDBMS qui a abandonné les jointures et les balayages et juré de toujours accéder aux données par clé primaire. Pour cela, il a été accordé l'évolutivité. Il est donc devenu simple en déplaçant une partie de la complexité vers la couche application. Et donc je me sens logique d'avoir la charge de maintenir des moyennes au niveau de l'application.
Nous pouvons également regarder d'un point de vue différent sur la même question. Supposons que nous ayons un bon groupe en fonction du côté serveur NOSQL (ce que nous ne faisons pas ..). Il serait difficile d'assurer une bonne qualité de service pour le cas «principal» de l'accès «par clé». Même pour les SGBDR matures, il n'est pas facile d'assurer de bonnes performances sur les charges mixtes OLAP-OLTP ...

Questions connexes