Frage

Was ist das Für und Wider von MongoDB (dokumentenbasierte), HBase (spaltenbasierte) und Neo4j (Objekte Grafik)?

Ich interessiere mich besonders für jeden einige der typischen Anwendungsfälle zu kennen.

Was sind gute Beispiele für Probleme, die Diagramme besser als die Alternative zu lösen?

Vielleicht jede Slide oder Scribd würdig Präsentation?

War es hilfreich?

Lösung

MongoDB

Skalierbarkeit: Hohe Verfügbarkeit und konsistente aber saugt an Beziehungen und viele verteilte schreibt. Es ist Hauptvorteil ist die Speicherung und schemaless Dokumente indizieren. Dokumentgröße wird bei 4mb verschlossen und nur die Indizierung macht Sinn für begrenzte Tiefe. Siehe http://www.paperplanes.de/2010/2/25/notes_on_mongodb. html

Am besten geeignet für: Baumstrukturen mit begrenzten Tiefe

Use Cases: Diverse Typ Hierarchies, Biologische Systematik, Bibliothekskataloge

Neo4j

Skalierbarkeit: Sehr zur Verfügung, aber nicht verteilt. Powerful traversal Rahmen für Hochgeschwindigkeits-Überquerungen in dem Knoten Raum. um mehrere Milliarden Knoten / Beziehungen zu Graphen begrenzt. Siehe http://highscalability.com/neo4j-graph-database-kicks-buttox

Am besten geeignet für: Deep Graphen mit unbegrenzter Tiefe und zyklisch, gewichteten Verbindungen

Use Cases: Social Networks, Topologische Analyse, Semantic Web Daten, Inferenz

HBase

Skalierbarkeit: Zuverlässige, konsistente Speicherung in der Petabyte und darüber hinaus. Unterstützt sehr große Anzahl von Objekten mit einer begrenzten Anzahl von spärlichen Attributen. Arbeiten im Tandem mit Hadoop für große Datenverarbeitungsaufträge. http://www.ibm.com/developerworks/opensource/library /os-hbase/index.html

Am besten geeignet für: gerichtet, azyklische Graphen

Use Cases: Log-Analyse, Semantic Web Data, Machine Learning

Andere Tipps

Ich weiß, dass dies wie ein seltsamer Ort, um Punkt scheinen mag, aber hat Heroku vor kurzem gegangen Nüsse mit ihren NoSQL-Angeboten und habe einen OK-Überblick über viele der aktuellen Projekte. Es ist in keiner Weise eine Slide drücken, aber es wird Ihnen helfen, den Vergleichsprozess zu starten:

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

Zur Kasse dies auf einen Blick Vergleich von NoSQL DBs:

http://kkovacs.eu/cassandra-vs-mongodb- vs-couchdb-vs-redis

Sie können auch einen Multi-Modell DBMS, wie die zweite Generation von NoSQL Produkt bewerten. Mit einem Multi-Modell haben Sie nicht alle die Kompromisse bei der Auswahl nur ein Modell, sondern mehr als ein Modell.

Das erste Multi-Modell NoSQL ist Orientdb .

MongoDB:

MongoDB ist Dokumentendatenbank im Gegensatz zu relationaler Datenbank. Das Dokument speichert halbstrukturierte Daten wie JSON-Objekt (Schema frei)

Key Features:

  1. kann Schema über ändern Entwicklung der Anwendung
  2. Vollindizierung
  3. Load Balancing & Daten sharding
  4. Datenreplikation
  5. Konsistenz und Partitionieren in CAP-Theorie (Consistency-Verfügbarkeits-Partitioning)

Wenn verwenden:

  1. Echtzeit-Analysen
  2. Hochgeschwindigkeits Protokollierung
  3. Halb strukturiertes Datenmanagement

Wenn nicht Gebrauch:

  1. Hohe Transaktionsanwendungen mit starken ACID-Eigenschaften (Unteilbarkeit, Konsistenz, Isolation und Durability). RDBMS ist in diesem Anwendungsfall bevorzugt.
  2. auf Datensätze Betrieb Beziehungen beteiligt - Fremdschlüssel usw.

Hbase:

HBase ist eine Open Source, nicht-relationale, verteilte Spalte Familiendatenbank

Key Features:

  1. Es bietet eine fehlertolerante Art und Weise von großen Mengen an spärlichen Daten zu speichern (kleine Mengen von Informationen innerhalb einer großen Sammlung von leeren oder unwichtigen Daten gefangen, wie Erkenntnis die 50 größten Positionen in einer Gruppe von 2 Milliarden Datensätze oder die nicht-Null-Elemente zu finden, das weniger als 0,1% einer riesigen Sammlung)
  2. Unterstützung variabler Schema, in dem jede Zeile unterschiedlich ist
  3. Kann als Eingang und Ausgang für MapReduce Job dient
  4. Kompression, In-Memory-Betrieb, und Bloom Filter auf einem pro-Säule (eine Datenstruktur entwickelt, um Ihnen zu sagen, schnell und speicher effizient, ob ein Element in einem Satz vorhanden ist) 5.Achieve CP auf CAP

Wenn HBase verwenden:

  1. Wenn Sie Laden von Daten durch Schlüssel, Daten von Schlüsseln suchen (oder Bereich), dienen Daten, die durch Schlüssel, Abfrage-Daten durch die Taste
  2. Speichern von Daten, die von Zeile, die nicht entspricht gut einem Schema (variable Schema)

Wenn nicht HBase zu verwenden:

  1. Für relationale Analytik
  2. Voll Table Scans
  3. Daten nach Zeilen zusammengefasst, analysiert werden statt Spalten

Neo4j:

Neo4j ist Graph-Datenbank unter Verwendung von Eigenschaftsgraph-Datenmodell (Data als Grafik gespeichert und Knoten und Beziehungen mit Eigenschaften)

Key Features:

  1. Unterstützt volle ACID (Unteilbarkeit, Konsistenz, Isolation und Dauerhaftigkeit) Regeln
  2. Unterstützung Indizes von Apache Lucence mit
  3. Schema frei, Bottom-up-Datenmodell-Design
  4. Hohe Skalierbarkeit wird durch kompakte Speicherung und Speicher erreicht für Diagramme verfügbar Cachen

Wenn verwenden:

  1. Stammdatenmanagement
  2. Netzwerk- und IT-Betrieb
  3. Echtzeit-Empfehlungen
  4. Betrugserkennung
  5. Soziale Netzwerk (wie Facebook)

Wenn nicht Gebrauch:

  1. Massenabfragen / Scans
  2. Wenn Ihre Anwendung erfordert Partitioning & Sharding von Daten

Haben Sie einen Blick auf den Vergleich der verschiedenen NoSQL-Technologien in diesem Artikel

Quellen:

Wiki, Slide Aktie , Cloudera , Tutorials Punkt , Neo4j

Pretty decent Artikel hier auf MongoDB und NoRM (.net-Erweiterungen für MongoDB) http://lukencode.com/2010/07 / 09 / getting-started-mit-mongodb-and-Norm /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top