Creación de una Entidad en base de datos de grafos

Desde la versión 3.1.0-KickOff, en el Control Panel se ha pasado a denominar a las Ontologías como «Entidades». Esto no altera ninguna funcionalidad; simplemente se ha cambiado la nomenclatura para un mejor entendimiento del concepto.

Disponible desde la versión 4.2.0-Predator.

Interfaz de usuario: 5.3.2-Ultimate

Introducción

En este artículo vamos a explicar cómo trabajar con Entidades almacenadas sobre Nebula Graph, para los casos en los que se quiera trabajar con tecnologías de almacenamiento basadas en grafos.

Pasos

Crear la Entidad

Desde el Control Panel, navegaremos al menú de Desarrollo > Mis Entidades.

image-20240315-092532.png

 

Esto nos llevará al listado de Entidades disponibles. Para crear la Entidad, pulsaremos en el botón de «+» situado en la parte superior derecha de la pantalla.

image-20240227-121951.png

De las distintas Entidades que vamos a poder crear, seleccionaremos la de «Creación entidad en base de datos de grafos»:

Rellenar la información general

En la primera pestaña rellenaremos los datos básicos sobre la Entidad, que representará un espacio o space en Nebula Graph, es decir, ésta contendrá la definición de los vértices y aristas. Tendremos que elegir el número de particiones y réplicas para la Entidad (space) que vamos a crear, por defecto a 15 y 1 respectivamente.

En la siguiente pestaña definiremos los vértices y aristas, a medida que agreguemos propiedades de ambas aparecerán en la tabla asociada.

A continuación pulsaremos en el botón crear.

 

Si accedemos al icono de «ver Entidad» (ojo) podremos ver reflejada la definición de vértices y aristas.

Introducir datos

Una vez creada la Entidad, podemos ejecutar todo tipo de queries nGQL desde query tool.

Para este ejemplo crearemos los siguientes datos:

#VERTICES INSERT VERTEX player(name, age) VALUES "player100":("Tim Duncan", 42); INSERT VERTEX player(name, age) VALUES "player101":("Tony Parker", 36); INSERT VERTEX player(name, age) VALUES "player102":("LaMarcus Aldridge", 33); INSERT VERTEX player(name, age) VALUES "player103":("Michael Jordan", 52); INSERT VERTEX team(name) VALUES "team203":("Trail Blazers"), "team204":("Spurs"); #ARISTAS INSERT EDGE follow(degree) VALUES "player101" -> "player100":(95); INSERT EDGE follow(degree) VALUES "player101" -> "player102":(90); INSERT EDGE follow(degree) VALUES "player101" -> "player103":(70); INSERT EDGE follow(degree) VALUES "player102" -> "player100":(75); INSERT EDGE follow(degree) VALUES "player102" -> "player100":(75); INSERT EDGE follow(degree) VALUES "player103" -> "player101":(55); INSERT EDGE serve(start_year, end_year) VALUES "player101" -> "team204":(1999, 2018),"player102" -> "team203":(2006, 2015),"player103" -> "team203":(1990, 2022);

Con esto ya tendremos datos para realizar consultas.

Consultas

Como hemos dicho anteriormente, podemos realizar cualquier tipo de consulta en formato nGQL, veamos unos ejemplos:

FETCH PROP ON player "player100" YIELD properties(vertex) as player_properties;
GO FROM "player101" OVER follow YIELD id($$) as vid;

Apificación

También podremos apificar la Entidad para realizar consultas vía HTTP.

Cuando seleccionemos una Entidad de tipo grafo para apificar, nos aparecerá únicamente una operación disponible.

Nebula Graph UI

Desde el listado de Entidades, cuando una Entidad esté almacenada en Nebula Graph, tendrá una opción de acceder a la UI de Nebula.

Al acceder, se nos abrirá una pestaña nueva, donde tendremos que introducir los siguientes datos de acceso:

Y seleccionar la Entidad/space en el combo:

Luego accederemos al Explorer para poder visualizar el grafo de nuestros datos dentro de la Entidad.

Para visualizar un grafo inicial completo, podemos seleccionar el botón ‘Start with vertices', y después 'Import Sample’