MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Graph DBs vs. Document DBs vs. Triplestores

Ich bin mir nicht sicher, ob ich dem Gefühl zustimmen würde, dass viele Leute SPARQL nicht mögen. SPARQL 1.0 hatte einige Mängel, aber es ging ganz gut auf das ein, wofür es entwickelt wurde, und die neue Iteration, SPARQL 1.1, baut darauf auf und fügt viele Konstrukte aus SQL hinzu, die die Leute in der ursprünglichen Spezifikation erwartet hatten, einschließlich Unterabfragen und Aggregaten &Semantik aktualisieren. Ich denke, dass die Tatsache, dass es Standard ist und Sie erwarten können, in jedem Triple Store die gleiche Analyse und Semantik zu sehen, im Gegensatz zu SQL-Dialekten, ein nettes Feature ist.

Ich würde auch behaupten, dass alle Triple Stores Graph-Datenbanken sind; Sie können in RDF Eigenschaften auf bestimmte Kanten setzen, wenn auch nicht so gut wie mit Neo4j. Aber Triple Stores haben den Vorteil einer echten Abfragesprache, einer W3C-Standarddatendarstellung, die es trivial macht, Ihre Daten in einen anderen Triple Store zu bringen, und für eine Reihe von Triple Stores die Fähigkeit, auf OWL basierende Argumente durchzuführen.

Ich weiß nichts über die Skalierbarkeit der meisten Graph-Datenbanken, aber im Allgemeinen skalieren die kommerziellen RDF-Datenbanken recht gut. Alle können in Milliarden von Tripeln skaliert werden, was sehr viele Anwendungsfälle abdeckt. Wie sie mit der Skalierung umgehen, ist jedoch von Anbieter zu Anbieter sehr unterschiedlich, was das Auf- oder Aufskalieren, Clustering usw. betrifft. Sie werden auch ziemlich unterschiedliche Speicher- und Hardwareanforderungen sehen, um die Implementierungen für jeden anzupassen. Für mich habe ich eher eine EC2-Instance, normalerweise eine 2XL- oder 4XL-Instanz, genommen, ein EBS montiert, das groß genug ist, um die Daten zu speichern, und schon bin ich ziemlich gut aufgestellt.

Darüber hinaus lassen sich einige Triple Stores mit Lucene oder ähnlichen Technologien integrieren, um invertierte Indizes für die Daten bereitzustellen, und viele beginnen jetzt damit, georäumliche und zeitliche Indizes einzubeziehen. Dies sind sehr nützliche Funktionen, bei denen ich mir nicht sicher bin, ob sie in etwas wie Neo4j verfügbar sind.

Abgesehen davon werden sie nicht so gut skalieren wie relationale Datenbanken, sie sind einfach nicht so ausgereift. Aber auch mit "echten" Datenmengen wird man nicht aufgeschmissen. Einer der Vorteile von Triples Stores ist natürlich die Argumentation, die es schwierig macht, in großem Maßstab zu arbeiten, aber das ist der Hauptgrund, warum die verschiedenen OWL-Profile erstellt wurden. Aber man kann sich selbst in die Enge treiben, wenn man nicht vorausdenkt.

Ich denke, dass Graphdatenbanken, insbesondere Triple Stores, für viele Anwendungen, die erstellt werden, ziemlich gut geeignet sein können, aber ich denke nicht, dass das bedeutet, dass alles mit ihnen gemacht werden sollte. Wie alles andere sind sie Werkzeuge mit ihren guten und ihren schlechten Seiten, also müssen Sie basierend auf Ihrer Anwendung die richtige Wahl treffen. Aber sie verdienen heutzutage wahrscheinlich immer mindestens eine Überlegung.