Nebula Graph is a DBMS (Database management system), which is designed to store efficiently large interconnected data sets that form a graph which can have billions of nodes and trillions of links. Delivers high enterprise-grade performance to simplify the most complex data sets imaginable into meaningful and useful information.
The project It is written in C ++ and distributed under the Apache 2.0 license. The client libraries for accessing the DBMS are ready for Go, Python, and Java.
About Nebula Graph
The DBMS uses a distributed architecture without shared resources, which implies the launch of independent and self-sufficient processes to process graphical requests and stored storage processes.
The meta-service is dedicated to orchestrating the movement of data and providing meta-information on the graph. To ensure data consistency, a protocol based on the RAFT algorithm is used.
NebulaGraph, ensures security by providing access only to authenticated users whose credentials are established through the role-based access control (RBAC) system.
Besides that has the ability to connect different types of motors storage. Support to expand the query generation language with new algorithms.
And it provides minimal latency when reading or writing data and maintaining high performance. When testing a 632GB database, including a 1.200 billion vertex and 8.400 billion edge graph, on a one graph node and three stored node cluster, the delays were on the level of several milliseconds, and the performance rose at 140 thousand queries per second.
Of the key features of Nebula Graph, the following stand out:
- Linear scalability.
- SQL-like query language, powerful enough and easy to understand. Operations such as GO (bi-directional chart vertex traversal), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (using the result of the previous query) are supported. User-defined variables and indexes are supported.
- High availability and fault tolerance.
- Support for creating snapshots with a database state outage to simplify backup creation.
- Ready for industrial use (already used in the infrastructure of JD, Meituan and Xiaohongshu).
- The ability to change the storage scheme and update data without stopping or affecting operations.
- TTL support to limit the lifespan of the data.
- Commands for managing storage hosts and configurations.
- Tools to manage the job and schedule the start of the job (COMPACT and FLUSH are still supported from the job).
- Lookup for the full path and the shortest path between given vertices.
- OLAP interface for integration with third-party analytical platforms.
- Utilities to import data from CSV files or from Spark.
- Export metrics for monitoring with Prometheus and Grafana.
- Nebula Graph Studio web interface for visualization of graphical operations, graphical navigation, data storage design and loading schemes.
How to install Nebula Graph on Linux?
For those who are interested in being able to install this DBMS on their system, they can do so following the instructions that we share below.
If you have Centos 6 the package you should download is the following. To do this you must open a terminal on your system and in it you will type the following command:
In case you use Centos 7, then the package you need to download is:
While for those who are Ubuntu 16.04 LTS users, the package to download is:
Or if you have Ubuntu LTS 18.04
To do the package installation downloaded you can do it with your preferred package manager or you can do it from the terminal by typing one of the following commands.
In the case of packages for CentOS:
sudo rpm -ivh nebula*.rpm
While for the package case for Ubuntu:
sudo dpkg -i nebula*.deb
Finally, if you are an Arch Linux user you can install the DBMS with the following command:
sudo pacman -S nebula
To learn more about its use, launch of services and others, you can consult all this information In the following link.