El aumento de las necesidades de análisis basado en relaciones hace que el uso de grafos esté aumentando. La existencia de bases de datos orientadas a grafos no es nueva ya que en los años 90 existían alternativas maduras pero que han tenido un uso relativamente marginal hasta ahora. Estas bases de datos se caracterizan por su flexibilidad de esquema en lo que a las relaciones entre entidades se refiere. El concepto de triples compuestos por un sujeto, un predicado o verbo y un objeto es la base de almacenamiento de estas bases de datos. El lenguaje de consulta para este tipo de bases de datos también es propio (SPARQL) y tiene ciertas similitudes con el SQL. Podéis obtener más información https://www.w3.org/RDF/ y en https://www.w3.org/TR/sparql11-query/.

En SQL Server 2017 aparece como novedad el soporte nativo para objetos de tipo nodo y aristas que nos permitirán modelar grafos dentro de nuestra base de datos de forma integrada con el resto de objetos tradicionales. Desde el punto de vista de sintaxis se añade la cláusula MATCH (traída del lenguaje Cypher) para facilitar la expresión de las relaciones de forma más natural. Al tratarse de una primera versión nos encontramos con bastantes limitaciones como por ejemplo la necesidad de convertir los updates en inserts+deletes si queremos modificar una arista que relaciona dos nodos. También tendremos limitaciones a la hora de referenciar tablas derivadas en la cláusula MATCH, lo cual nos condicionará, por ejemplo, en el uso de CTEs recursivas.

Desgraciadamente si comparamos funcionalmente la implementación de grafos en SQL Server 2017 con la de Neo4j, por ejemplo, veremos que a nivel de algoritmia estamos a años luz, teniendo que implementar de forma manual aquellos algoritmos típicos de grafos, como son el cálculo del camino más corto entre nodos, la cláusula transitiva, etc.

Finalmente bajaremos a bajo nivel para entender las «tripas» de los grafos, su estructura interna, cómo se enlazan los nodos con las aristas, etc. Esto es importante para entender desde el punto de vista de rendimiento si sería competitivo respecto a una alternativa tradicional basada en relaciones entre tablas.

A continuación, puedes ver la presentación de la charla ‘Demos la bienvenida a los grafos en SQL Server 2017’ del SolidQ Summit 2018:

 

0 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like
Leer más

Evalúa el impacto que tiene tu proyecto de Power BI

Ya sabemos que cuando una empresa tiene que decidir si se lanza o no a invertir en un proyecto de Business intelligence tiene que encontrar las respuestas a todas las preguntas que le surgen sobre su eficacia: "¿realmente le vamos a sacar partido?", "¿nos dará la información que necesitamos?", "¿nos va a reportar beneficios?"... En muchos casos a las empresas les resulta complicado tener la respuesta a todas estas preguntas, sobre todo cuando nos encontramos en las primeras fases del proyecto. Pero, ¿y cuando está ya está funcionando? Surgen nuevas preguntas: "Sí, todos estos gráficos están muy bien, pero: ¿realmente me dicen lo que quiero saber?, ¿estoy acertando con estos informes?, ¿se utilizan dentro de la empresa o es dinero tirado?..."

Primeros pasos: Creación de bases de datos en Apache Hive en HDInsight (en la nube) y paths (rutas – HDFS o WASB)

Anteriormente hemos conectado con la herramienta cliente (CLI) a HDInsight Developer Preview; en esta ocasión vamos a hacerlo directamente en la distribución disponible de HDInsight en Azure. Para crear un cluster de HDInsight en Windows Azure debes seguir los pasos descritos en este enlace. Esta publicación asume que has creado correctamente tu cluster HDInsight en Windows Azure.

Excel conectado a Analysis Services y la propiedad MDX Missing Member Mode

Encontramos muchas veces Excel como herramienta que los usuarios utilizan para pre cocinar datos, crearse informes, navegar cubos… En esta entrada voy a compartir una experiencia reciente, en un escenario en el que Excel es la aplicación cliente para mostrar datos de un cubo, algo bastante común. Lo que no resulta tan común es Excel muestre un error cuando puedo ejecutar la misma consulta MDX en SQL Server Management Studio.