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?
Répondre
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.
- 1. Choisir une solution de messagerie
- 2. Cassandra store Keyspace to new Disque
- 3. Comment choisir une solution de déploiement WinForms
- 4. Quand devrais-je choisir "spring.net" sur asp.net?
- 5. Comment implémenter une solution d'authentification client avec NoSQL (Cassandra)?
- 6. $ choisir quand XSL variable = variable $
- 7. Quand choisir un dictionnaire ADT
- 8. Comment choisir entre Cassandra, Membase, Hadoop, MongoDB, SGBDR, etc.?
- 9. Comment choisir la base de données entre MongoDB et Cassandra
- 10. Choisir quand envoyer des données avec Flurry sur iPad
- 11. déterminer la semaine quand choisir un jour
- 12. Bullet Physics, quand choisir quel DynamicsWorld?
- 13. Quand devrais-je choisir une interface et quand devrais-je utiliser une classe abstraite?
- 14. Affichage nouveau champ quand choisir une valeur spécifique (JS/HTML)
- 15. Déployer Cassandra sur EC2?
- 16. Impossible d'exécuter Cassandra sur Ubuntu
- 17. Quand est-ce que Cassandra a frappé la loi d'Amdahl?
- 18. Omniauth, Devise, Open ID, CanCan - Quand et quand utiliser une solution pour une application API Rails
- 19. Quand ajouter d'autres nœuds à Cassandra Ring - DSE 4
- 20. Téléchargement sur l'App Store
- 21. Quand le paquet Cassandra 2.0.0 RPM sera-t-il disponible?
- 22. Cassandra sur SQL comme cache?
- 23. Redis session store sur heroku
- 24. Cassandra CQL pas égal opérateur sur une colonne
- 25. Cassandra récupère une rangée entière
- 26. Erreur Cqlsh sur Cassandra 2.0.1
- 27. Cassandra Production prêt sur Windows?
- 28. Pour Hadoop, quel stockage de données choisir, Amazon S3 ou Azure Blob Store?
- 29. Input-store-store-output
- 30. Comment configurer iAd Network dans l'App Store? et quand?
Si vous utilisez une structure comme un graphique, jetez un oeil à neo4j ou à un autre graphique DB: http://neo4j.org/ –