Nebula Graph 是一款資料庫管理系統 (DBMS),旨在有效地儲存大型、相互關聯的資料集,這些資料集構成一個包含數十億個節點和數萬億個連結的圖。它提供高效能的企業級功能,即使是最複雜的資料集也能簡化為有意義且有用的資訊。
該專案使用 C++ 編寫,並以 Apache 2.0 許可證發布。用於存取資料庫管理系統的用戶端程式庫提供 Go、Python 和 Java 版本。
關於星雲圖
DBMS使用沒有共享資源的分佈式體系結構,這意味著將啟動獨立且自足的流程來處理圖形請求和存儲的存儲流程。
元服務專門用於協調資料移動並提供關於圖的元資訊。為了確保資料一致性,它採用了基於 RAFT 演算法的協定。
Nebula Graph透過僅向透過基於角色的存取控制 (RBAC) 系統建立憑證的已驗證使用者提供存取權限來確保安全性。
它還能夠連接不同類型的儲存引擎,並支援使用新的演算法擴展查詢生成語言。
而且,它在讀取或寫入數據並保持高性能時提供了最小的延遲。 在一個圖節點和三個存儲的節點群集上測試一個包括632億個頂點和1.200億個邊緣圖的8.400GB數據庫時,延遲處於幾毫秒的水平,並且性能提高到每秒140萬次查詢。

Nebula Graph 的主要功能包括以下幾點:
- 線性可伸縮性。
- 類似SQL的查詢語言,功能強大且易於理解。 支持諸如GO(雙向圖表頂點遍歷),GROUP BY,ORDER BY,LIMIT,UNION,UNION DISTINCT,INTERSECT,MINUS,PIPE之類的操作(使用上一個查詢的結果)。 支持用戶定義的變量和索引。
- 高可用性和容錯能力。
- 支持創建數據庫狀態中斷的快照,以簡化備份創建。
- 可用於工業用途(已在京東,美團和小紅書的基礎設施中使用)。
- 在不停止或影響操作的情況下更改存儲方案和更新數據的能力。
- TTL支持可限制數據壽命。
- 用於管理存儲主機和配置的命令。
- 用於管理作業和計劃作業開始的工具(該作業仍支持COMPPACT和FLUSH)。
- 查找給定頂點之間的完整路徑和最短路徑。
- OLAP接口,用於與第三方分析平台集成。
- 從CSV文件或Spark導入數據的實用程序。
- 導出度量標準以使用Prometheus和Grafana進行監視。
- Nebula Graph Studio Web界面用於圖形化操作,圖形導航,數據存儲設計和加載方案的可視化。
如何在Linux上安裝Nebula Graph?
如果您有興趣在自己的系統上安裝此資料庫管理系統,可以按照以下說明進行操作。
如果您使用的是 CentOS 6,則需要下載以下軟體包。為此,請在系統上開啟終端並輸入以下命令:
wget https://oss-cdn.nebula-graph.io/package/${release_version}/nebula-${release_version}.el6-5.x86_64.rpm
如果您使用的是CentOS 7,則需要下載的軟體包是:
wget https://oss-cdn.nebula-graph.io/package/${release_version}/nebula-${release_version}.el7-5.x86_64.rpm
對於Ubuntu 16.04 LTS 用戶,需要下載的軟體包是:
wget https://oss-cdn.nebula-graph.io/package/${release_version}/nebula-${release_version}.ubuntu1604.amd64.deb
或者,如果您使用的是Ubuntu 18.04 LTS 版本。
wget https://oss-cdn.nebula-graph.io/package/${release_version}/nebula-${release_version}.ubuntu1804.amd64.deb
要安裝下載的軟體包,您可以使用您喜歡的軟體包管理器,也可以透過終端機輸入以下命令之一來進行安裝。
以 CentOS 的軟體包為例:
sudo rpm -ivh nebula*.rpm
而對於Ubuntu 軟體包來說:
sudo dpkg -i nebula*.deb
最後,如果您是 Arch Linux 用戶,可以使用以下命令安裝資料庫管理系統:
sudo pacman -S nebula
要了解有關其用途、服務發布和其他詳細信息的更多信息,您可以在以下連結中找到所有這些信息。