品牌名稱
OPPO
所在行業
IT
企業規模
1001-5000人

OPPO 圖數據庫平臺建設和業務落地

424次閱讀

1、什么是圖數據庫

圖數據庫(Graph database)是以圖這種數據結構存儲和查詢的數據庫。與其他數據庫不同,關系在圖數據庫中占首要地位。這意味著應用程序不必使用外鍵或帶外處理(如 MapReduce)來推斷數據連接。與關系數據庫或其他 NoSQL 數據庫相比,圖數據庫的數據模型也更加簡單,更具表現力。

圖數據庫在社交網絡、知識圖譜、金融風控、個性化推薦、網絡安全等領域應用廣泛。

2、圖數據庫調研

2.1、調研背景

隨著知識圖譜等業務數據的不斷增長,現有圖數據庫 JanusGraph 應對已經比較吃力,導入時間已經無法滿足業務的要求。因此尋找性能更好的開源屬性圖數據庫已經成為了當前迫切要做的事情。

2.2、調研過程

第一步,搜集常見的開源分布式屬性圖數據庫,

第二步,基于美團、LightGraph、TigerGraph、GalaxyBase 等圖數據庫測試報告,分析可得幾個圖數據庫性能

第三步,為了驗證 Nebula Graph 的性能,對 Nebula Graph 和 JanusGraph 進行了一次性能對比測試,測試結果如下:

OPPO 圖數據庫平臺建設及業務落地

 

OPPO 圖數據庫平臺建設及業務落地

2.3、調研結論

Nebula Graph 導入性能、響應時間、以及穩定性均符合需求,支持數據切分,分布式版本免費開源,使用的企業也多,中文文檔,文檔全面,社區活躍,是開源圖數據庫的理想選擇。

3、Nebula Graph 簡介

OPPO 圖數據庫平臺建設及業務落地

圖片來源于 Nebula Graph 文檔站

Nebula Graph 是一款開源的、分布式的、易擴展的原生圖數據庫,能夠承載數千億個點和數萬億條邊的超大規模數據集,并且提供毫秒級查詢。

Nebula Graph 基于圖數據庫的特性使用 C++ 編寫,采用 shared-nothing 架構,支持在不停止數據庫服務的情況下擴縮容,而且提供了非常多原生工具,例如 Nebula Graph Studio、Nebula Console、Nebula Exchange 等,可以大大降低使用圖數據庫的門檻。

OPPO 圖數據庫平臺建設及業務落地

圖片來源于 Nebula Graph 文檔站

Nebula Graph 由三種服務構成:Graph 服務、Meta 服務和 Storage 服務,是一種存儲與計算分離的架構。

4、圖數據庫平臺建設

之前在使用 JanusGraph 的時候,遇到過導入緩慢、查詢慢、高并發 OOM(JanusGraph 線程池采用無界隊列導致)、FULL GC(業務 Gremlin 語句中包含 Value 導致元空間不斷膨脹導致)等問題,這些在切到 Nebula Graph 后基本得到了解決。

OPPO 圖數據庫平臺建設及業務落地

JanusGraph 并沒有好用的管理界面,如上圖所示,我們開發了一套包含多圖管理、Schema 管理、圖可視化、圖導入、權限管理的管理界面。

而 Nebula Graph Studio 提供多圖管理、Schema 管理、圖可視化、圖導入等功能,省去了很多開發工作,降低了使用門檻。

OPPO 圖數據庫平臺建設及業務落地

整個圖數據庫平臺的結構如上圖所示,基于 Nebula Graph 和 Nebula Graph 官方工具,著重開發了 全量導入、增量導入、圖導出、備份/還原、查詢工程(圖檢索)等功能。

5、業務落地

5.1、知識圖譜及智能問答

5.2、內容標簽

OPPO 圖數據庫平臺建設及業務落地

5.3、數據血源

OPPO 圖數據庫平臺建設及業務落地

在數倉中,經常需要運行各種 ETL Job,數據表和任務非常多,如何直觀的觀察數據表上下游與任務之間的關系變成一個亟需解決的問題。

5.4、服務架構拓撲

OPPO 圖數據庫平臺建設及業務落地

 

6、總結

通過知識圖譜等業務實踐落地,完成了從 JanusGraph 向 Nebula Graph 的轉變,導入性能提升了一個數量級,查詢性能以及并發能力都有 3-6 倍的提升。而且,Nebula Graph 比 JanusGraph 更穩定。在實踐的過程中,也遇到過很多問題,得到了 Nebula Graph 社區非常多的幫助,十分感謝社區的支持!

圖數據庫在最近這幾年發展很快,Neo4j 今年上半年融資3.25 億美金,刷新了數據庫的融資記錄。Gartner 發布的報告指出:“到 2023 年,圖技術將促進全球 30% 企業的快速決策場景化。圖技術應用的年增長率超過 100%。”隨著 5G 和物聯網的普及,圖數據庫將成為處理關系的基礎設施。

 

作者簡介

Qirong, OPPO 高級后端工程師, 主要從事圖數據庫、圖計算及相關領域的工作。