Question

Qu'est-ce que les avantages et les inconvénients de MongoDB (document basé), HBase (en colonnes) et Neo4j (objets graphique)?

Je suis particulièrement intéressé de connaître quelques-uns des cas typiques d'utilisation pour chacun d'eux.

Quels sont les bons exemples de problèmes graphiques peuvent résoudre mieux que l'alternative?

Peut-être une présentation digne Slideshare ou Scribd?

Était-ce utile?

La solution

MongoDB

Évolutivité: très disponible et cohérente, mais à des relations et aspire de nombreuses écritures distribuées. Il est principal avantage est le stockage et l'indexation des documents sans schéma. Taille du document est plafonnée à 4 Mo et l'indexation n'a de sens que pour la profondeur limitée. Voir http://www.paperplanes.de/2010/2/25/notes_on_mongodb. html

Convient à la: Structures arborescentes avec profondeur limitée

Cas d'utilisation: Type Divers Hiérarchies, Systématique biologique, catalogues de bibliothèques

Neo4j

Évolutivité: Très disponible mais non distribués. Puissant cadre de traversée pour des traversées à grande vitesse dans l'espace de noeud. Limité à des graphiques autour de plusieurs milliards de noeuds / relations. Voir http://highscalability.com/neo4j-graph-database-kicks-buttox

Le mieux adapté pour: graphiques profonds avec la profondeur illimitée et connexions cycliques, pondérés

Cas d'utilisation: Réseaux sociaux, analyse topologiques, données Web sémantique, Inférence

HBase

Évolutivité: Stockage fiable, conformément aux pétaoctets et au-delà. Prise en charge des très grands nombres d'objets avec un nombre limité d'attributs rares. Travaux en tandem avec Hadoop pour les gros travaux de traitement des données. http://www.ibm.com/developerworks/opensource/library /os-hbase/index.html

Convient à la: réalisé, graphiques acyclique

Cas d'utilisation: Analyse Log, données Web sémantique, l'apprentissage machine

Autres conseils

Je sais que cela peut sembler un endroit étrange pour pointer vers mais, Heroku a récemment fait les noix avec leurs offres NoSQL et ont une vue d'ensemble OK de la plupart des projets en cours. Il est en aucun cas une presse Slideshare, mais il vous aidera à démarrer le processus de comparaison:

http://blog.heroku.com/archives/2010/7/20/nosql/?utm_medium=email&utm_source=EmailBlast&utm_content=619506254&utm_campaign=HerokuSeptemberNewsletter-VersionB&utm_term=NoSQLHerokuandYou

Commander ce au regard de la comparaison de NoSQL Dbs:

http://kkovacs.eu/cassandra-vs-mongodb- vs-CouchDB-vs-Redis

Vous pouvez également évaluer un Multi-modèle SGBD, comme la deuxième génération de produits NoSQL. Avec un multi-modèle vous n'avez pas tous les compromis sur le choix d'un seul modèle, mais plus d'un modèle.

Le premier multi-modèle NoSQL est OrientDB .

MongoDB:

MongoDB est la base de données de documents contrairement à la base de données relationnelle. Le document stocke des données semi-structurées comme objet JSON (schéma libre)

Caractéristiques principales:

  1. schéma peut changer sur l'évolution de l'application
  2. L'indexation
  3. L'équilibrage de charge et de données sharding
  4. réplication de données
  5. Cohérence et Cloisonnement en théorie CAP (Cohérence-disponibilité-Partitioning)

Quand utiliser:

  1. Analyse en temps réel
  2. exploitation forestière à grande vitesse
  3. Gestion de données semi-structurées

Quand ne pas utiliser:

  1. Applications hautement transactionnelles avec de fortes propriétés ACID (atomicité, cohérence, isolation et durabilité). SGBDR est préférable dans ce cas d'utilisation.
  2. Fonctionnement sur des ensembles de données portant sur les relations - clés étrangères etc

Hbase:

HBase est une open source, base de données de famille colonne non-relationnelle, distribuée

Caractéristiques principales:

  1. Il est un moyen tolérant aux pannes de stocker de grandes quantités de données rares (petites quantités d'informations capturées dans une grande collection de données vides ou peu importantes, telles que la recherche les 50 plus grands éléments dans un groupe de 2 milliards d'enregistrements, ou de trouver les éléments non nuls qui représentent moins de 0,1% d'une vaste collection)
  2. Supports schéma variables où chaque rangée est différent
  3. peut servir de l'entrée et de sortie pour le travail MapReduce
  4. Compression, opération en mémoire, et des filtres de Bloom sur une base par colonne (une structure de données destinée à vous dire, rapidement et efficacement en mémoire, si un élément est présent dans un ensemble) 5.Achieve CP sur la PAC

Quand utiliser HBase:

  1. Si vous chargement des données par clé, recherche de données par clé (ou la plage), au service des données par clé, l'interrogation des données par clé
  2. Le stockage des données par ligne qui ne se conforme pas bien à un schéma (schéma variable)

Quand ne pas utiliser HBase:

  1. Pour l'analyse relationnelle
  2. scans de table complets
  3. Les données sont agrégées, analysées par des lignes au lieu de colonnes

Neo4j:

Neo4j est la base de données de graphique à l'aide du modèle de données Graphique propriété (Les données sont stockées sous forme de graphique et les nœuds et les relations avec les propriétés)

Caractéristiques principales:

  1. Prise en charge complète ACID (atomicité, cohérence, isolation et durabilité) les règles
  2. supporte les index en utilisant Apache Lucence
  3. Schéma libre, bottom-up conception du modèle de données
  4. Haute évolutivité a été atteint grâce à un stockage compact et la mémoire cache disponible pour les graphiques

Quand utiliser:

  1. Master gestion des données
  2. Réseau et opérations informatiques
  3. des recommandations en temps réel
  4. la détection des fraudes
  5. Réseau social (comme Facebook)

Quand ne pas utiliser:

  1. En vrac requêtes / Scans
  2. Si votre application nécessite Cloisonnement et Sharding de données

Jetez un oeil à la comparaison des différentes technologies NoSQL dans ce article

Sources:

Wiki, Faites glisser part, Cloudera , Tutoriels point , Neo4j

Joli article décent ici MongoDB et NORM (.net extensions pour MongoDB) http://lukencode.com/2010/07 / 09 / getting-started-avec-MongoDB et-norme /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top