Hat jemand verwendet eine Objekt-Datenbank mit einer großen Menge von Daten?
Objekt-Datenbanken wie MongoDB und db4o sind immer viele Werbung in letzter Zeit. Jeder, der mit Ihnen spielt, scheint es zu lieben. Ich vermute, dass Sie es mit über 640 Kb Daten in Ihre Anwendungen.
Hat jemand versucht, eine Objekt-Datenbank mit einer großen Menge von Daten (sagen wir, 50 GB oder mehr)? Sind Sie in der Lage, noch die Ausführung komplexer Abfragen (wie von einem Bildschirm suchen)? Wie ist er im Vergleich zu Ihren üblichen relationalen Datenbank der Wahl?
Ich bin nur neugierig. Ich will das Objekt-Datenbank zu stürzen, aber ich muss wissen, ob es ' ll Arbeit auf etwas mehr als eine Beispiel-app.
- tbh mit ORMs wie Hibernate dabei so einen fantastischen job der Abstraktion, diese Art der Sache entfernt, ich sehe wirklich nicht der Punkt.
- MongoDB ist nicht wirklich im Wettbewerb mit NHibernate und relationalen Datenbanken in den meisten Fällen. Bei den Anwendungsbeispielen Liste, die ich verlinkt. Relationale Datenbanken sind wirklich schrecklich für bestimmte Situationen und für diese alternativen Datenbanken sind bessere Lösungen. Die OP kann falsch sein, in seine Verwendung des Begriffs Objekt-Datenbanken auch hier.
- 640K sollte genug für jedermann.
- Mongo != Objekt-Datenbank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jemand nur ging in die Produktion mit ein 12 Terabyte an Daten in MongoDB. Das größte, das ich kannte, war davor 1 TB. Viele Leute halten wirklich große Mengen von Daten in Mongo.
Es ist wichtig, daran zu erinnern, dass Mongo arbeitet ähnlich wie eine relationale Datenbank: Sie brauchen die richtigen Indizes zu bekommen, gute Leistung. Können Sie erklären, () für Abfragen und Kontakt die Benutzer-Liste für die Hilfe mit diesem.
Als ich anfing, db4o bereits im Jahr 2000 hatte ich nicht die riesige Datenbanken im Sinn. Das Hauptziel war es, zu speichern, beliebig komplexe Objekt sehr einfach mit einer Zeile code, und das gut und schnell mit geringen Ressourcen-Verbrauch, so kann es laufen, embedded-und mobile Geräte.
Laufe der Zeit hatten wir viele Anwender, die db4o für webapps und mit sehr großen Mengen von Daten, die sich nahe der heutigen maximale Datenbank-Dateigröße von 256 GB (mit einer konfigurierten block-Größe von 127 Byte). Also um deine Frage zu beantworten: ja, db4o arbeiten mit 50GB, aber man sollte nicht planen, es zu benutzen für die Terabyte an Daten (es sei denn, Sie können gut teilen Sie Ihre Daten über mehrere db4o-Datenbanken, die setup-Kosten für eine einzelne Datenbank zu vernachlässigen, Sie können einfach anrufen #openFile() )
db4o wurde erworben von Versant im Jahr 2008, weil es Funktionen (embedded, geringer Ressourcen-Verbrauch, leicht) machen es ein tolles kostenloses Produkt Versant high-end-Objekt-Datenbank VOD. VOD-Skalen für riesige Mengen an Daten und es ist so viel besser als relationale Datenbanken. Ich denke, es wird nur schmunzeln über 50 GB.
MongoDB Kräfte SourceForge, Die New York Times und mehrere andere große Datenbanken...
Lesen Sie die MongoDB Anwendungsfälle. Leute, die nur mit Technologie spielen werden oft nur zu schauen, wie funktioniert das und sind nicht an dem Punkt, wo Sie verstehen können, die Einschränkungen. Für die richtigen Arten von datasets und den Zugang Muster 50GB ist nichts für MongoDB läuft auf der richtigen hardware.
Diese nicht-relationalen Systemen, Blick auf die trade-offs, die ein RDBMs aus, und verändert Sie ein wenig. Die Konsistenz ist nicht so wichtig wie andere Dinge in einigen Situationen, so dass diese Lösungen lassen Sie den Handel, dass die sich für etwas anderes. Die trade-off ist immer noch relativ gering, ms oder vielleicht Sekunden, in einigen Situationen.
Lohnt es sich zu Lesen über die CAP-theorem zu.
War ich auf der Suche bei der Umstellung der API habe ich sicher mit der stack-overflow-iphone-app schrieb ich eine Weile zurück, um MongoDB an, wo es sitzt derzeit in einer MySQL-Datenbank. In roher form, die SO CC dump ist im multi-gigabyte Bereich und die Art und Weise konstruierte ich die Unterlagen für MongoDB führte zu einer 10G+ Datenbank. Es ist vertretbar, dass ich nicht konstruieren Sie die Dokumente auch, aber ich wollte nicht zu verbringen eine Menge Zeit, dies zu tun.
Eines der ersten Dinge, die Sie laufen in wenn Sie beginnen, Sie auf diesem Weg wird die fehlende 32-bit Unterstützung. Natürlich alles in Bewegung ist, um 64 bit jetzt aber gerade etwas im Auge zu behalten. Ich glaube nicht, dass einer der wichtigsten Dokument-Datenbanken, die Unterstützung der Auslagerung im 32-bit-Modus, und das ist verständlich von einem code-Komplexität Standpunkt.
Zu testen, was ich tun wollte, habe ich eine 64-bit-Instanz von EC2-Knoten. Die zweite Sache, die ich gestoßen bin, ist, dass, obwohl diese Maschine hatte 7G-Speicher, wenn der physikalische Speicher erschöpft war, ging alles von schnell bis nicht ganz so schnell. Ich bin mir nicht sicher, ob ich nicht etwas einrichten falsch an dieser Stelle, da die nicht-Unterstützung von 32-bit-system, getötet, was ich wollte, es zu benutzen, aber ich wollte noch sehen, wie Sie aussah. Laden Sie die gleichen Daten-dump in MySQL dauert etwa 2 Minuten auf eine viel weniger mächtige box, aber das Skript, das ich zum laden die beiden Datenbank funktioniert anders, daher kann ich nicht machen einen guten Vergleich. Läuft nur eine Teilmenge der Daten in MongoDB war viel schneller, so lange, wie es resultierte in einer Datenbank, die weniger als 7G.
Ich denke, dass meine mitnehmen aus, es war, dass große Datenbanken funktionieren nur gut, aber Sie haben können, um zu überlegen, wie die Daten strukturiert ist, mehr als würden Sie mit traditionellen Datenbank-wenn Sie möchten, um die Erhaltung der hohen Leistung. Ich sehe eine Menge von Menschen, die mit MongoDB für die Anmeldung und ich kann mir vorstellen, dass viele dieser Datenbanken sind Massiv, aber zur gleichen Zeit können Sie nicht tun eine Menge von random access, so dass Maske, was die Leistung Aussehen würde, wie für herkömmliche Anwendungen.
Einer aktuellen Ressource, die hilfreich sein könnten, ist die visual guide to nosql-Systemen. Es gibt eine anständige Zahl von Entscheidungen, die außerhalb von MongoDB. Ich habe verwendet, Redis als gut, obwohl Sie nicht mit, wie groß die Datenbank.
Hier einige benchmarks auf db4o:
http://www.db4o.com/about/productinformation/benchmarks/
Ich denke, es hängt letztlich von einer Vielzahl von Faktoren, einschließlich der Komplexität der Daten, aber db4o scheint sicherlich hängen Sie mit den besten von Ihnen.
Vielleicht eine Erwähnung Wert.
Die Europäische Weltraumorganisation Planck-mission läuft auf dem Versant Objekt-Datenbank.
http://sci.esa.int/science-e/www/object/index.cfm?fobjectid=46951
Es ist ein Satellit mit 74 onboard-sensoren, die im vergangenen Jahr die Zuordnung der infrarred Spektrum des Universums und speichern die Informationen in einer map-segment-Modell. Es hat immer eine Menge hype in diesen Tagen, weil es die Herstellung von einigen der coolsten Bilder, die jemals gesehen des Universums.
Jedenfalls hat es generiert 25T von Informationen, die in Versant und repliziert sich über 3 Kontinente. Wenn die mission abgeschlossen ist, im nächsten Jahr wird es insgesamt 50T
Wohl auch erwähnenswert, Objekt-Datenbanken neigen dazu, viel kleiner zu halten die gleichen Informationen. Es ist, weil Sie wirklich normalisiert, keine Daten Vervielfältigung für joins, keine leeren verschwendet Spalte Platz und nur wenige Indizes eher als 100 von Ihnen. Finden Sie die öffentlichen Informationen über die Prüfung ESA hatte zu betrachten Lagerung in der multi-Spalte relationalen Datenbank-format -vs - mit einem geeigneten Objekt Modells und Speicherung in der Versant object database. Sie fanden, konnten Sie sparen 75% Speicherplatz durch die Verwendung von Versant.
Hier ist die Umsetzung:
http://www.planck.fr/Piodoc/PIOlib_Overview_V1.0.pdf
Hier sprechen Sie über 3T -vs - 12T finden Sie im Test
http://newscenter.lbl.gov/feature-stories/2008/12/10/cosmic-data/
Auch ... es gibt benchmarks die zeigen, Versant Größenordnungen schneller auf der Analyse-Seite der mission.
CHeers,
-Robert