Durante décadas, los desarrolladores se han enfrentado a una frustrante disyuntiva: elegir la flexibilidad y escalabilidad de una base de datos de documentos o el rico modelado de relaciones de una base de datos de grafos. Para crear aplicaciones que requerían ambas cosas, como sistemas de detección de fraudes, motores de recomendación o complejos rastreadores de cadenas de suministro, a menudo había que gestionar dos sistemas separados, lo que conllevaba los inevitables quebraderos de cabeza de la sincronización de datos, la latencia y la complejidad operativa.
Pero las aplicaciones agenticas exigen más. Necesitan atravesar relaciones complejas. y gestione datos complejos y jerárquicos a gran velocidad.
Hemos conceptualizado un modelo gráfico en Couchbase para eliminar esta dicotomía. Al superponer un modelo de grafos directamente sobre nuestro almacén de documentos, le permitimos consultar sus datos JSON existentes como un grafo sin moverlos, duplicarlos ni gestionar una base de datos independiente. Este modelo de grafos dota a SQL++ de grafos. cláusulas para la coincidencia de patrones y el recorrido de relaciones, todo ello dentro de una única plataforma de alto rendimiento.
En esta publicación, presentamos la arquitectura conceptual de este nuevo modelo, exploramos cómo aprovecha el lenguaje SQL++ que ya conoce y le mostramos cómo crear aplicaciones con muchas relaciones con una simplicidad y una escala sin precedentes.
El modelo de grafos amplía SQL++ al introducir 1) una instrucción “CREATE GRAPH” que define un grafo de propiedades virtuales sobre su conjunto de datos existente y 2) un término “MATCH” en la cláusula FromClause existente de SQL++. ’MATCH“ permite a los autores de consultas especificar patrones de consulta de navegación utilizando la misma sintaxis que se encuentra en lenguajes de consulta de grafos populares como Cypher (Neo4j) y SQL/PGQ 2023. Lo que diferencia al modelo de grafos de Couchbase de las extensiones de grafos ”añadidas“ de otros competidores es nuestra interacción sinérgica entre documentos, vértices y aristas. Por ejemplo, las consultas del modelo de grafos de Couchbase pueden unir explícitamente vértices de patrones de consulta y colecciones/subconsultas de Couchbase. En consecuencia, un usuario de Couchbase puede expresar conceptos potentes (por ejemplo, hipergrafos, grafos de hipernodos, etc.) que modelarán con mayor precisión el modelo de datos de una organización.
Entre bastidores, Couchbase reescribe los patrones de consulta de grafos en una serie de JOIN y CTE recursivas que operan sobre las consultas de vértices y aristas de la definición “CREATE GRAPH”. Una vez reescrita, la consulta se optimiza y se ejecuta en paralelo particionado utilizando los mismos servicios (servicio de consulta, servicio de índice, servicio de búsqueda, etc.) que utilizan sus consultas SQL++ existentes. Debido a la naturaleza virtual de este gráfico, los usuarios no necesitan esperar a que se construya su gráfico y pueden obtener sus conocimientos más rápidamente. Al combinar MATCH con las cláusulas SQL++ existentes, los usuarios de Couchbase pueden “conservar” su JSON y representarlo gráficamente también.
A continuación se muestran los casos de uso que permite el soporte de modelos gráficos en Couchbase:
- Atención integral al paciente: Los datos sanitarios son notoriamente desordenados. El expediente de un paciente es un “documento” (nombre, fecha de nacimiento, dirección), pero su historial médico es una compleja red de relaciones: médicos visitados, recetas dispensadas, resultados de laboratorio, reclamaciones al seguro y antecedentes familiares. Ahora, un médico puede solicitar, en forma de patrón gráfico, “muéstrame todos los pacientes diagnosticados con diabetes tipo 2 a los que el Dr. Smith ha recetado metformina, pero que no han visitado la clínica en los últimos seis meses”.
- Detección de fraudes: Los estafadores operan en redes. Comparten direcciones, números de teléfono o dispositivos para crear identidades sintéticas. Detectar esto requiere identificar el conexiones entre cuentas aparentemente no relacionadas. Ahora, un analista puede detectar una red de fraude con una simple consulta: “Buscar todos los usuarios que iniciaron sesión desde la misma dirección IP en un intervalo de 10 minutos y realizaron transacciones a la misma cuenta de destino”.”
- Motores de recomendación: “Las personas que compraron X también compraron Y” es sencillo. Pero “Las personas como tú (mismos datos demográficos) que compraron X y lo valoraron positivamente también compraron Y” es un problema gráfico complejo. Ahora, un sitio de comercio electrónico puede ofrecer recomendaciones hiperpersonalizadas: “Recomendar productos comprados por otros usuarios que también compraron las mismas ‘botas de montaña’ que el usuario actual, pero filtrando los productos de la categoría ‘Equipo de campamento’.”
- Visibilidad de la cadena de suministro: Una cadena de suministro moderna es una jerarquía profunda. Un automóvil contiene un motor, que incluye un pistón, que contiene una aleación específica. Si un lote de aleación es defectuoso, es necesario saber exactamente qué automóviles se deben retirar. Un fabricante puede rastrear un defecto al instante: “Encuentre todos los automóviles ‘Modelo X’ terminados que contengan un ‘anillo de pistón’ suministrado por ‘Acme Corp’ en el ‘Lote #99’”. Este recorrido (CONTIENE -> CONTIENE -> CONTIENE) es más intuitivo de expresar como una ruta en un modelo de gráfico que como una consulta que utiliza CTE recursivas.
El modelo de grafos supone un avance en el acceso directo a datos ricos en relaciones dentro de Couchbase. Al salvar la brecha entre los documentos JSON y las estructuras de grafos, ahora es posible descubrir patrones ocultos y responder a preguntas complejas sin la sobrecarga que supone una base de datos de grafos independiente.
¿Listo para probarlo y darnos tu opinión? Hemos preparado un cuaderno completo y práctico que te guiará a través del proceso de creación del gráfico_investigación_perros, llenándolo con datos de muestra y ejecutando consultas gráficas para responder preguntas como: “Busca todos los productos de comida para perros que contengan ingredientes que provoquen alergias en los golden retrievers”. Descarga el Cuaderno Colab y comience a explorar el potencial de sus datos hoy mismo.