lanzamiento de la base de datos de código abierto , diseñada para el almacenamiento eficiente de grandes conjuntos de datos interrelacionados, que forman un gráfico que puede contener miles de millones de nodos y billones de conexiones. El proyecto está escrito en C++ y bajo la licencia Apache 2.0. Las bibliotecas de cliente para acceder a la base de datos han sido preparadas para los lenguajes Go, Python y Java. La startup que desarrolla la base de datos, VESoft, hace unos días recibió su primera ronda de inversiones por un monto de 8 millones de dólares.
La base de datos tiene una arquitectura distribuida sin división de recursos (shared-nothing), que implica la ejecución de procesos independientes y autosuficientes para el procesamiento de consultas (graphd) y para el almacenamiento (storaged). La orquestación del movimiento de datos y la provisión de metainformación sobre el gráfico son gestionadas por un servicio meta. Para garantizar la coherencia de los datos se utiliza un protocolo basado en el algoritmo .
Las principales características de Nebula Graph:
- Garantizar mediante la provisión de acceso solo a usuarios autenticados, cuyos permisos son establecidos a través de un sistema de gestión de acceso basado en roles (RBAC).
- conexiones de diferentes tipos de motores de almacenamiento. Soporte para la extensión del lenguaje de formación de consultas con nuevos algoritmos.
- Garantizar mínimas latencias en la lectura o escritura de datos y mantener un alto rendimiento. Durante en un clúster de un nodo graphd y tres nodos storaged, con una base de datos de 632 GB, que incluye un gráfico de 1.2 mil millones de nodos y 8.4 mil millones de aristas, las latencias se mantuvieron en algunos milisegundos, y el rendimiento alcanzó hasta 140,000 consultas por segundo.
- Escalabilidad lineal.
- Un lenguaje de consultas similar a SQL, suficientemente potente y fácil de entender. Se admiten operaciones como GO (recorrido bidireccional de nodos del gráfico), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (uso del resultado de la consulta anterior). Se admiten índices y variables definidas por el usuario.
- Garantizar alta disponibilidad y resistencia a fallos.
- Soporte para la creación de instantáneas del estado de la base de datos para facilitar la creación de copias de seguridad.
- Listo para aplicaciones industriales (ya utilizado en la infraestructura de empresas como JD, Meituan y Xiaohongshu).
- La posibilidad de cambiar el esquema de almacenamiento y actualización de datos sin detener ni afectar las operaciones en curso.
- Soporte para TTL para limitar la vida útil de los datos.
- Comandos para gestionar configuraciones y hosts de almacenamiento.
- Herramientas para gestionar trabajos y programar la ejecución de tareas (se admiten actualmente COMPACT y FLUSH).
- Operaciones de búsqueda de la ruta completa y la más corta entre nodos especificados.
- Interfaz OLAP para integración con plataformas de análisis de terceros.
- Utilidades para importar datos de archivos CSV o de Spark.
- Exportación de métricas para monitoreo a través de Prometheus y Grafana.
- Interfaz web
para visualizar operaciones en el grafo, navegar por el grafo, diseñar el esquema de almacenamiento y cargar datos.
Fuente: opennet.ru
