sql >> Base de Datos >  >> NoSQL >> MongoDB

Graph DBs vs. Document DBs vs. Triplestores

No estoy seguro de estar de acuerdo con el sentimiento de que a mucha gente no le gusta SPARQL. SPARQL 1.0 tenía algunas deficiencias, pero abordó muy bien para qué fue diseñado, y la nueva iteración, SPARQL 1.1, se basa en agregar muchas construcciones de SQL que la gente esperaba ver en la especificación original, incluidas subconsultas, agregados y actualizar la semántica. Creo que el hecho de que sea estándar y que pueda esperar ver el mismo análisis y semántica en cada almacenamiento triple, a diferencia de los dialectos de SQL, es una buena característica.

También diría que todas las tiendas triples son bases de datos de gráficos; puede poner propiedades en bordes específicos en RDF, aunque no tan bien como con Neo4j. Pero las tiendas triples tienen la ventaja de un lenguaje de consulta real, una representación de datos estándar de w3c que hace que sea trivial llevar sus datos a otra tienda triple y, para varias tiendas triples, la capacidad de realizar un razonamiento basado en OWL.

No sé nada sobre la escalabilidad de la mayoría de las bases de datos gráficas, pero en general, las bases de datos RDF comerciales escalan bastante bien. Todos pueden escalar a miles de millones de triples, lo que maneja una gran cantidad de casos de uso. Aunque la forma en que manejan la escala difiere enormemente de un proveedor a otro en cuanto a la ampliación o la ampliación, la agrupación en clústeres, etc. También verá requisitos de memoria y hardware bastante diferentes para que coincidan con las implementaciones de cada uno. Para mí, he tendido a tomar una instancia EC2, generalmente una 2XL o 4XL, montar un EBS lo suficientemente grande como para contener los datos, y estoy bastante bien configurado.

Además, algunas tiendas triples se integran con Lucene o tecnologías similares para proporcionar índices invertidos sobre los datos, y muchas ahora están comenzando a incluir índices geoespaciales y temporales. Estas son características muy útiles de las que no estoy seguro de su disponibilidad en algo como Neo4j.

Dicho esto, no van a escalar tan bien como las bases de datos relacionales, simplemente no son tan maduros. Pero tampoco te joderán cuando tengas cantidades "reales" de datos. Por supuesto, una de las ventajas de las tiendas triples es el razonamiento, cuyo rendimiento a escala es complicado, pero esa es gran parte de la razón por la que se crearon los diversos perfiles OWL. Pero puedes arrinconarte a ti mismo si no piensas en el futuro.

Creo que las bases de datos de gráficos, específicamente las tiendas triples, pueden ser una buena combinación para muchas aplicaciones que se están construyendo, pero no creo que eso signifique que todo deba hacerse con ellas. Como cualquier otra cosa, son herramientas con sus puntos buenos y sus puntos malos, por lo que debe tomar la decisión correcta en función de su aplicación. Pero probablemente siempre merezcan al menos una consideración en estos días.