2011-01-13 3 views
3

J'ai 30-40 Go de données et 3 machines de développement (Core Duo i4, 3 Go). Les données sont un ensemble de structures de type graphique et j'ai des requêtes qui traversent les graphiques. Existe-t-il une ligne directrice qui pourrait m'aider à décider d'utiliser Cassandra ou une solution classique, par exemple SQL ou Semantic Store? Mon plan actuel est de mettre en place Cassandra et voir comment ça marche mais j'aimerais en savoir plus avant de commencer l'installation.Quand choisir Cassandra sur une solution SQL/Semantic Store?

+4

Si vous utilisez une structure comme un graphique, jetez un oeil à neo4j ou à un autre graphique DB: http://neo4j.org/ –

Répondre

1

Je n'utiliserais pas Cassandra pour n'importe quel type de structure de niveau graphique. Cela fait environ 6 mois que j'ai cherché à faire quelque chose de similaire alors peut-être que Cassandra a évolué depuis, mais j'ai trouvé qu'il était fondamentalement limité par le fait qu'il ne possède que des index de niveau ligne. Pour une structure à base de graphes (en supposant une disposition simplifiée d'un arc par rangée), vous avez vraiment besoin d'index de colonnes car si vous voulez traverser le graphe, vous voulez pouvoir commencer à partir d'un nœud particulier A et trouver tous les arcs qui vont de ce noeud (en supposant un graphique dirigé), alors vous auriez à faire une analyse de la ligne de l'ensemble de données car il n'y a pas de fonctionnalité intégrée pour dire donnez-moi les lignes qui ont A dans une colonne particulière.

Pour ce faire, vous devez concevoir efficacement une structure de données pour Cassandra qui vous donne un index inversé. C'est un peu difficile et vous oblige à savoir à l'avance le type de requêtes auxquelles vous voulez répondre - répondre à de nouveaux types de requêtes à une date ultérieure peut être très difficile ou impossible si vous ne concevez pas bien. Ces slides démontrent l'idée mais j'espère que cela montre clairement que vous devez construire vos propres index. Pour les structures de graphe pouvant être décomposées en triplets, considérez un magasin RDF - pour les structures plus complexes, considérez une base de données de graphe complète. Si vous voulez vraiment faire NoSQL, vous pouvez probablement créer quelque chose au-dessus d'une base de documents, car ils ont tendance à avoir une meilleure indexation, mais encore une fois, vous devrez réfléchir à la façon dont vous stockez vos données.

Questions connexes