Nebula Graph un DBMS open source orientado a gráficos
Nebula Graph es un DBMS (Sistema de gestión de bases de datos), que está diseñado para almacenar de manera eficiente grandes conjuntos de datos interconectados que forman un gráfico que puede tener miles de millones de nodos y billones de enlaces. Ofrece un alto rendimiento de nivel empresarial para simplificar los conjuntos de datos más complejos imaginables en información significativa y útil.
El proyecto está escrito en C ++ y distribuido bajo la licencia Apache 2.0. Las bibliotecas del cliente para acceder al DBMS están preparadas para Go, Python y Java.
Sobre Nebula Graph
El DBMS utiliza una arquitectura distribuida sin recursos compartidos, lo que implica el lanzamiento de procesos independientes y autosuficientes para procesar solicitudes gráficas y procesos de almacenamiento almacenados.
El meta-servicio se dedica a la orquestación del movimiento de datos y al suministro de metainformación sobre el gráfico. Para garantizar la coherencia de los datos, se utiliza un protocolo basado en el algoritmo RAFT.
Nebula Graph, garantiza la seguridad proporcionando acceso solo a usuarios autenticados cuyas credenciales se establecen a través del sistema de control de acceso basado en roles (RBAC).
Además de que cuenta con la capacidad para conectar diferentes tipos de motores de almacenamiento. Soporte para expandir el lenguaje de generación de consultas con nuevos algoritmos.
Y proporciona latencia mínima al leer o escribir datos y mantener un alto rendimiento. Al probar en un clúster de un nodo gráfico y tres nodos almacenados, una base de datos de 632 GB, que incluye un gráfico de 1.200 millones de vértices y 8.400 millones de bordes, los retrasos fueron del nivel de varios milisegundos, y el rendimiento ascendió a 140 mil consultas por segundo.
De las características clave de Nebula Graph, se destacan la siguientes:
- Escalabilidad lineal.
- Lenguaje de consulta tipo SQL, lo suficientemente potente y fácil de entender. Se admiten operaciones como GO (recorrido bidireccional de vértices del gráfico), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (utilizando el resultado de la consulta anterior). Se admiten índices y variables definidas por el usuario.
- Alta disponibilidad y tolerancia a fallos.
- Soporte para crear instantáneas con un corte del estado de la base de datos para simplificar la creación de copias de seguridad.
- Listo para uso industrial (ya utilizado en la infraestructura de JD, Meituan y Xiaohongshu).
- La capacidad de cambiar el esquema de almacenamiento y actualizar los datos sin detener o afectar las operaciones.
- Soporte TTL para limitar la vida útil de los datos.
- Comandos para administrar configuraciones y hosts de almacenamiento.
- Herramientas para gestionar el trabajo y programar el inicio del trabajo (COMPACT y FLUSH aún son compatibles desde el trabajo).
- Operaciones de búsqueda para la ruta completa y la ruta más corta entre vértices dados.
- Interfaz OLAP para integración con plataformas analíticas de terceros.
- Utilidades para importar datos desde archivos CSV o desde Spark.
- Exportar métricas para monitoreo con Prometheus y Grafana.
- Interfaz web Nebula Graph Studio para la visualización de operaciones gráficas, navegación gráfica, diseño de almacenamiento de datos y esquemas de carga.
¿Como instalar Nebula Graph en Linux?
Para quienes estén interesados en poder instalar este DBMS en su sistema, podrán hacerlo siguiendo las instrucciones que compartimos a continuación.
Si cuentas con Centos 6 el paquete que debes descargar es el siguiente. Para ello debes abrir una terminal en tu sistema y en ella vas a teclear el siguiente comando:
wget https://oss-cdn.nebula-graph.io/package/${release_version}/nebula-${release_version}.el6-5.x86_64.rpm
En el caso de que uses Centos 7, entonces el paquete que debes descargar es:
wget https://oss-cdn.nebula-graph.io/package/${release_version}/nebula-${release_version}.el7-5.x86_64.rpm
Mientras que para el caso de los que son usuarios de Ubuntu 16.04 LTS, el paquete a descargar es:
wget https://oss-cdn.nebula-graph.io/package/${release_version}/nebula-${release_version}.ubuntu1604.amd64.deb
O si cuentas con Ubuntu 18.04 LTS
wget https://oss-cdn.nebula-graph.io/package/${release_version}/nebula-${release_version}.ubuntu1804.amd64.deb
Para hacer la instalación del paquete descargado puedes hacerlo con tu gestor de paquetes de preferencia o puedes hacerlo desde la terminal tecleando alguno de los siguientes comandos.
En el caso de los paquetes para CentOS:
sudo rpm -ivh nebula*.rpm
Mientras que para el caso del paquete para Ubuntu:
sudo dpkg -i nebula*.deb
Finalmente, si eres usuario de Arch Linux puedes instalar el DBMS con el siguiente comando:
sudo pacman -S nebula
Para conocer mas al respecto sobre su uso, lanzamiento de servicios y demás, puedes consultar toda esta información en el siguiente enlace.