Cómo instalar y utilizar la base de datos gráfica Neo4j en Debian 12

Neo4j es un sistema de gestión de bases de datos de grafos de alto rendimiento para el almacenamiento de grafos, ciencia de datos, ML, análisis y visualización. Neo4j almacena datos en nodos, aristas que los conectan en relaciones, y atributos de nodos y aristas.

En este tutorial, te mostraremos instrucciones paso a paso para instalar y utilizar la base de datos de grafos Neo4j en el servidor Debian 12. También aprenderás a conectarte a neo4j mediante Cypher-shell y aprenderás las consultas básicas de Cypher.

Requisitos previos

Antes de continuar, asegúrate de que tienes lo siguiente:

  • Un servidor Debian 12 con al menos 2 GB de memoria.
  • Un usuario no root con privilegios de administrador sudo.

Instalar Java OpenJDK

Antes de instalar Neo4j Graph Database, debes instalar Java en tu sistema, y se recomienda utilizar la última versión de Java LTS: Java OpenJDK 17. En esta sección, instalarás Java OpenJDK 17 a través del repositorio de Debian.

En primer lugar, ejecuta el siguiente comando para actualizar el índice de paquetes de Debian y obtener la información más reciente sobre los paquetes.

sudo apt update

actualizar repo

Ahora instala el Java OpenJDK 17 ejecutando el comando que se indica a continuación. En el repositorio de Debian 12, el paquete default-jdk hace referencia al Java OpenJDK 17, que requiere Neo4j Graph Database.

sudo apt install default-jdk

Escribe y para proceder a la instalación.

instalar default-jdk

Después de instalar Java, verifica la versión de Java utilizando el comando que se indica a continuación. Deberías tener el Java OpenJDK 17 instalado en tu sistema.

java -version

verificar java

Instalación de Neo4j Graph Database

Después de instalar Java, estás listo para instalar la base de datos Neo4j Graph Database en tu sistema Debian. Instalarás las dependencias básicas, configurarás el repositorio Neo4j, instalarás el paquete Neo4j y, a continuación, iniciarás y activarás el servicio neo4j.

Para empezar, ejecuta el siguiente comando para instalar las herramientas básicas del sistema en tu servidor Debian.

sudo apt install gnupg2 apt-transport-https wget curl -y

instalar deps básicos

Ahora ejecuta el siguiente comando para añadir la clave GPG y el repositorio de Neo4j. En este caso, añadirás el repositorio Neo4j a tu sistema.

wget -q -O- https://debian.neo4j.com/neotechnology.gpg.key | \
    gpg --dearmor | sudo tee /usr/share/keyrings/neotechnology.gpg > /dev/null 2>&1

echo «deb [signed-by=/usr/share/keyrings/neotechnology.gpg] https://debian.neo4j.com stable latest» | \
sudo tee /etc/apt/sources.list.d/neo4j.list

añadir repo

A continuación, actualiza el índice de paquetes de Debian e instala el paquete Neo4j ejecutando el siguiente comando apt.

sudo apt update && sudo apt install neo4j

Escribe y para proceder a la instalación.

instalar neo4j

Una vez que hayas instalado el paquete Neo4j, ejecuta el siguiente comando systemctl para iniciar y habilitar el servicio neo4j.

sudo systemctl start neo4j
sudo systemctl enable neo4j

Por último, verifica el servicio neo4j utilizando el siguiente comando para asegurarte de que el servicio se está ejecutando.

sudo systemctl status neo4j

Si la base de datos gráfica Neo4j se está ejecutando, aparecerá en tu pantalla la salida active(running) como la siguiente.

verificar el servicio neo4j

Configuración básica del despliegue de Neo4j

Ahora que ya has instalado Neo4j Graph Database, la primera tarea que debes realizar es configurar la contraseña de administrador de Neo4j a través de la línea de comandos neo4j-admin, configurar la dirección de escucha y la memoria heap máxima modificando la configuración por defecto /etc/neo4j/neo4j.conf.

Ejecuta el siguiente comando neo4j-admin para configurar la contraseña por defecto de tu instalación de Neo4j. En este ejemplo, establecerás la contraseña por defecto de Neo4j en p4ssword.

neo4j-admin dbms set-initial-password p4ssword

Después de configurar la contraseña por defecto de Neo4j, abre la configuración de Neo4j /etc/neo4j/neo4j.conf utilizando el siguiente comando del editor nano.

sudo nano /etc/neo4j/neo4j.conf

Añade tu dirección IP local al parámetro dbms.default_listen_address para permitir que Neo4j se ejecute en la red local. A continuación, cambia el parámetro server.memory.heap.max_size para establecer la memoria heap máxima para Neo4j Graph Database. En este caso, el Neo4j se ejecutará en 192.168.5.15 con una memoria heap máxima de 4 GB.

dbms.default_listen_address=192.168.5.15
server.memory.heap.initial_size=512m
server.memory.heap.max_size=4096m

Cuando hayas terminado, guarda el archivo y sal del editor.

Por último, ejecuta el siguiente comando systemctl para aplicar los cambios reiniciando el servicio neo4j.

sudo systemctl restart neo4j

configuración inicial neo4j

Conexión a Neo4j mediante Cypher-shell

Para conectarte a la base de datos gráfica Neo4j, utiliza cypher-shell. La funcionalidad de cypher-shell es similar a la del cliente mysql en MySQL/MariaDB y psql en PostgreSQL. El cypher-shell te permite ejecutar consultas Cypher, que es un lenguaje de consulta declarativo para la base de datos Neo4j Graph.

Ejecuta el comando cypher-shell que se indica a continuación para iniciar sesión en la Base de datos gráfica Neo4j. Cuando se te pida un nombre de usuario, introduce el usuario por defecto neo4j y, a continuación, tu contraseña.

cypher-shell -a 'neo4j://192.168.5.15:7687'

Una vez conectado, aparecerá el mensaje‘Conectado a Neo4j … como usuario neo4j‘ y el prompt pasará a ser como ‘neo4j@neo4j>’.

conexión mediante cypher-shell

Ahora ejecuta la siguiente consulta Cypher :help para mostrar mensajes de ayuda y :exit para salir de la cypher-shell. Como habrás notado, las consultas Cypher siempre empiezan con punto y coma.

:help
:exit

orden de ejecución

Además, utiliza la opción adicional -a para conectarte al servidor Neo4j específico, o -u para iniciar sesión como el usuario que desees.

cypher-shell -a 'neo4j://192.168.5.15:7687' -u neo4j -p p4ssword

Operaciones básicas en la base de datos gráfica Neo4j

En la Neo4j Graph Database, hay 3 entidades básicas:

  1. Nodos: son las entidades de datos de la base de datos gráfica Neo4j y utilizan paréntesis () en el lenguaje de consulta Cyper.
  2. Relaciones: cuando dos Nodos se conectan entre sí, se denomina Relación. La Relación se representa con la flecha ->, que indica la dirección entre Nodos.
  3. Rutas: están formadas por Nodos y Relaciones conectados.

Primero, ejecuta la siguiente consulta para crear un nuevo nodo con la etiqueta Película.

CREATE (a:Movie {title:'The Matrix', released: 1999}) RETURN a;

crear nodo

Ahora, ejecuta la consulta siguiente para crear varios nodos con la misma etiqueta Persona.

CREATE (a:Person {name:'Keanu Reeves', born: 1964}) RETURN a;
CREATE (a:Person {name:'Carrie-Anne Moss', born: 1967}) RETURN a;
CREATE (a:Person {name:'Laurence Fishburne', born: 1961}) RETURN a;

crear varios nodos

A continuación, ejecuta la siguiente consulta para crear nuevas relaciones entre los nodos etiquetados como Persona y el nodo etiquetado como Película. En este caso, la relación se llamará ACTED_IN con la propiedad roles.

MATCH (a:Person), (b:Movie) WHERE (a.name = 'Keanu Reeves') AND b.title = 'The Matrix' CREATE (a)-[r:ACTED_IN {roles:['Neo']}]->(b);
MATCH (a:Person), (b:Movie) WHERE (a.name = 'Carrie-Anne Moss') AND b.title = 'The Matrix' CREATE (a)-[r:ACTED_IN {roles:['Trinity']}]->(b);
MATCH (a:Person), (b:Movie) WHERE (a.name = 'Laurence Fishburne') AND b.title = 'The Matrix' CREATE (a)-[r:ACTED_IN {roles:['Morpheus']}]->(b);

crear relaciones entre nodos

Por último, ejecuta la siguiente consulta para comprobar los nodos y relaciones disponibles en tu base de datos gráfica Neo4j.

MATCH (s)-[r]->(e)
RETURN s.name AS Name, e.title AS Title, r.roles AS As;

La siguiente salida, confirma que cada nodo está conectado.

comprobar datos

Conclusión

En conclusión, ya has instalado correctamente la base de datos gráfica Neo4j en el servidor Debian 12 paso a paso. Has instalado y configurado la base de datos gráfica Neo4j has aprendido el uso básico de Cypher-shell para conectarte a Neo4j y has aprendido el funcionamiento básico utilizando el lenguaje de consulta Cyper

También te podría gustar...