2010-06-16 12 views
0

Distribué Salut à tous: Si je stocke des articles de presse dans une base de données avec différentes catégories telles que « Tech », « Finance » et « Santé », serait un travail bien de base de données distribuée dans ce système vs un SGBDR? Chacun des articles de nouvelles aurait les articles de nouvelles ci-joint ainsi que quelques autres articles. Je me demande si l'interrogation serait plus rapide, cependant.Nouvelles Stockage dans un DB vs SGBDR

Disons que je n'ai jamais plus d'un million de lignes, et je veux saisir les dernières (moins de 5 heures) des articles de haute technologie. J'imagine que ce serait une carte-réduire de "Donnez-moi tous les articles de technologie" (peut-être 10000), puis éliminer seulement ceux qui ont le dernier horodatage.

Suis-je penser à résoudre le problème de la bonne façon, et serait un DDB encore la meilleure solution? Dans quelques années, il pourrait y avoir 5 millions d'articles, mais même alors ....

+0

De plus, si j'aurais plus tard à la recherche sur ces articles, qui DDB serait le meilleur ajustement, MongoDB? Riak? – tesserakt

Répondre

3

Que ce soit d'utiliser une base de données distribuée ou un magasin clé-valeur dépend plus de vos besoins opérationnels que votre problème de domaine.

Quand les gens demandent comment nous suggérons souvent faire des requêtes a ordonné de temps à Riak, plusieurs stratégies (même si aucun d'entre eux sont une solution miracle comme Riak manques Ordonné requêtes de gamme):

1) Si vous êtes fréquemment accéder à un morceau de temps de taille spécifique, divisez vos données en tranches qui reflètent cette période. Par exemple, toutes les données du jour, de l'heure ou de la minute spécifiée seront stockées ou liées à partir d'un compartiment contenant l'horodatage approprié. Si je voulais toutes les nouvelles techniques d'aujourd'hui, le nom du compartiment pourrait être "tech-20100616". Au fur et à mesure que vos données arrivent, ajoutez les liens appropriés du compartiment temporel à l'élément réel. 2) Si les données sont plus orientées sur les séquences et ne sont pas liées à un moment spécifique, utilisez des liens pour créer une chaîne de données, reliant vers l'arrière dans le temps, vers l'avant, ou les deux. (Cela fonctionne aussi bien pour les données versionnées, comme les pages wiki.) Vous pourriez également devoir garder un objet qui pointe juste en tête de la liste.

Ces stratégies mises à part, Riak est probablement pas la solution à 100% pour des informations à la minute, mais peut-être mieux pour le stockage à long terme. Vous pouvez le combiner avec quelque chose comme Redis, memcached, ou même MongoDB (qui a une grande performance si vos données sont légèrement transitoires et peuvent tenir dans la mémoire) pour contenir un index des dernières nouveautés.

+0

Sean, au sujet du point n ° 1 que vous avez mentionné. Comment pourrions-nous implémenter l'objet avec ODM comme Ripple? –

Questions connexes