▪ El porqué de esta presentación. ▪ Componentes del modelo. ▪ Casos de uso. ▪ Relacional VS. Grafos. Azure Cosmos DB Gremlin (graph) API y Neo4J. ▪ Introducción. ▪ Demos. ▪ Analítica. Recursos.
están conectados. El modelado de datos tradicional esta enfocado a las entidades, no en las relaciones. Muchas aplicaciones, necesitan tanto el modelo de entidades como el de relaciones.
de grafos las relaciones persisten en la capa de almacenamiento. Esto se traduce a que las operaciones de recuperación sean muy eficientes. Estaría incluida en la categoría de NoSQL o no-relacional, debido a que no existen dependencias. Y habitualmente se designa como GDB (Graph Database).
de representar los grafos: ▪ Labeled-Propery Graph (LPG) – Grafos de propiedades etiquetadas. Se trata de una estructura compuesta de vértices o nodos y relaciones o bordes. Tanto los nodos como las relaciones pueden tener propiedades. ▪ Resource Description Framework (RDF) – Marco de descripción de recursos o triple stores. La información adicional se representa en un nodo separado. Llevan con nosotros mucho tiempo son parte de la W3C y la Web Semántica. ▪ Hypergraph. Un hipergrafo es un modelo en el que una relación (hiperborde) puede conectar cualquier número de nodos. Mientras que LPG necesita un nodo inicial y un nodo final, el modelo de hipergrafo permite cualquier cantidad de nodos en cualquier extremo de una relación. Muy útil si necesitas relaciones de muchos a muchos. La que vamos a tratar en esta ocasión será la primera, la segunda se extrapola de fácilmente.
llamados nodos. Como por ejemplo una persona, un lugar, un evento o un empleador. Relationships Son las relaciones entre los nodos. Por ejemplo: una persona conoce a otra persona. Pueden ser direccionales, bidireccionales o que apuntes a si mismo. Labels La etiqueta es la información que amplia el significado de un nodo o una relación. Como, por ejemplo: la edad, la fecha en que se conocieron, etc.
GDB son obvios a la vez que eficientes son: ▪ Redes sociales: LinkedIn, Facebook, etc. ▪ Motores de recomendación: compras de Amazon o eBay, contenidos como Netflix o Spotify, etc. ▪ Geoespacial: mapa de metro, navegación, etc. ▪ Detección de fraudes, rankings, etc. ▪ IoT, como bien puede ser Digital Twins. ▪ Redes de comunicación: una red LoRA, un API Gateway, etc. Muchas aplicaciones son obvias, como las anteriores, pero en otras no tanto. Es aquí cuando conocer que existe esta tercera vía para nuestros datos puede facilitarte la vida.
asegurado Cuenta 1 Numero Teléfono 1 Dirección 1 DNI 1 Numero Teléfono 2 DNI 2 Cuenta 2 Cuenta 3 Cuenta Bancaria Tarjeta Crédito Préstamo No asegurado Cuenta Bancaria
Deparment_Members ON Person.Id = Deparment_Members.PersonId LEFT JOIN Deparment ON Deparment.Id = Deparment_Members. DeparmentId WHERE Deparment.name = “IT Deparment” Person id (PK) name Deparment_Members deparmentId (FK) personId (FK) Deparment id (PK) name
lenguaje de grafos transversal. ▪ Nos proporciona las herramientas para realizar un CRUD en las consultas de grafos. ▪ Extrapólalo a lo que hace SQL con una base de datos Relacional. https://tinkerpop.apache.org/gremlin.html
puede escalar en almacenamiento. ▪ tiene replicación multirregión. ▪ es una base de datos completamente administrada. ▪ tiene indexado automático. ▪ la sintaxis de Gremlin está soportada por diversos motores. ▪ tiene niveles de consistencia ajustables (niveles de coherencia en Azure Cosmos DB). ▪ para cada entidad especializada tenemos un tipo de API: SQL API → Colecciones, Table API → Tablas, MongoDB API → Colecciones, Cassandra API → Tablas y Gremlin API → Grafos. ▪ Y por qué desde hace tiempo existe un free tier que puedes usar para poder probarlo.
Analítica avanzada: Cosmos DB & Gremlin API Azure Cosmos DB graph database Azure Synapse Link Analytical Store read optimized analytics queries Transaction Store write graph data using Gremlin API Machine Learning Big data BI Dashboards
rápida. ▪ Es una base de datos de grafos nativa pensada para un alto rendimiento en arquitecturas distribuidas. ▪ ACID: preparada para Workload de billones y trillones de transacciones. ▪ Dispone de integración ML out-the-box. ▪ Es open source, dispones de la versión Neo4j Community Edition. ▪ Y por que si la usan ellos, por algo será: https://neo4j.com
cadena de suministros Detección de comunidad Detecta opciones de agrupación o partición de grupos Centralidad (Importancia) Determina la importancia de distintos nodos en la red. Semejanza Evalúa qué tan parecidos son los nodos Predicción heurística de enlaces Estima la probabilidad de que los nodos formen una relación. Caminos y búsquedas Encuentra caminos óptimos; evalúa la disponibilidad de rutas, la calidad, … Incrustación de nodos Aprende la topología de gráficos para reducir la dimensionalidad para ML
) ▪ Representación gráfica de grafos… d3js.org https://observablehq.com/@d3/gallery Linkorious https://linkurio.us/product/ NetworkX https://networkx.org/ Gephi https://gephi.org/ Y si te interesa, de forma gratuita podrás obtener el Neo4J Certified Professional: https://neo4j.com/graphacademy/neo4j-certification/ O la de Neo4j Graph Data Science Certification