HugeGraph是一款易用、高效、通用的開源圖資料庫,早期由百度安全團隊自主研發,項目經過7個版本的疊代,於2018年8月對外開源。HugeGraph圖資料庫支持百億以上的頂點和邊快速導入,並提供毫秒級的關聯關係查詢能力(OLTP), 且可與Hadoop、Spark等大數據平台集成以進行離線分析(OLAP)。支持Property Graph和Apache Gremlin查詢語言,具備導入、導出、備份、恢復、可視化界面等工具組件,提供簡單易用的RESTful API及Client,可以輕鬆構建各種基於圖資料庫的套用和產品。
HugeGraph圖資料庫的典型套用場景包括:深度關係探索、複雜關聯分析、路徑搜尋、特徵抽取、數據聚類、社區檢測、 知識圖譜等,適用業務領域有如網路安全、電信詐欺、金融風控、廣告推薦、社交網路和智慧型機器人等。
基本介紹
- 軟體名稱:HugeGraph
- 開發商:百度
- 軟體平台:TinkerPop
- 軟體版本:0.7.4
- 更新時間:2018-8-8
- 軟體語言:Java
- 軟體大小:173M
- 軟體授權:Apache 2.0 License
- 領域:圖資料庫
- 套用場景:欺詐檢測、社交關係、知識圖譜等
HugeGraph圖資料庫背景,圖資料庫簡介,圖資料庫優勢,HugeGraph圖查詢示例,HugeGraph圖資料庫由何而來,HugeGraph圖資料庫特性,HugeGraph圖資料庫主要功能,優勢功能,基礎功能,高級功能,接口支持,周邊工具,HugeGraph圖資料庫版本更新,
HugeGraph圖資料庫背景
圖資料庫簡介
圖資料庫(Graph Database)是一種以圖結構進行語義查詢,並使用節點、邊和屬性來表示和存儲數據的資料庫。圖資料庫的關鍵概念是邊,通過邊將頂點連線在一起,從而進行快速的圖檢索操作。
圖資料庫優勢
與傳統關係型資料庫相比,圖資料庫的優勢有:
- 可以很自然的表達現實世界中的實體及其關聯關係(對應圖的頂點及邊);
- 靈活的數據模型可以適應不斷變化的業務需求;
- 靈活的圖查詢語言,輕鬆實現複雜關係網路的分析;
- 關係型資料庫在遍歷關係網路並抽取信息的能力非常弱,圖資料庫則為此而生;
- 關係型資料庫在規模龐大時很難做多層關聯關係分析(Join操作往往消耗過長時間而失敗),圖資料庫則天然把關聯數據連線在一起,無需耗時耗記憶體的Join操作,可以保持常數級時間複雜度。
HugeGraph圖查詢示例
- 多層關聯:查詢一個人的好友的好友有哪些?
- 最短路徑:查詢兩個點之間的最短路徑。
- 連通子圖:查詢一個點在K步以內相連線的所有鄰接點(K=1,2,3…)。
- 集中度測量:如PageRank、PersonalRank、特徵向量集中度、親密度等。
HugeGraph圖資料庫由何而來
HugeGraph團隊初期嘗試了幾個圖資料庫均無法滿足百億級以上關聯數據分析的需求,開始時基於Titan改造來實現,但發現Titan代碼難以修改及維護,因此決定參考Titan重新開發HugeGraph圖資料庫,並於2018年8月開放原始碼回饋給社區。
HugeGraph圖資料庫特性
- 易用:HugeGraph支持Gremlin圖查詢語言與RESTful API,同時提供圖檢索常用接口,具備功能齊全的周邊工具,輕鬆實現基於圖的各種查詢分析運算。
- 高效:HugeGraph在圖存儲和圖計算方面做了深度最佳化,提供多種批量導入工具,輕鬆完成百億數據快速導入,通過最佳化過的查詢達到圖檢索的毫秒級回響。支持數千用戶並發的線上實時操作。
- 通用:HugeGraph支持Apache Gremlin標準圖查詢語言和Property Graph標準圖建模方法,支持基於圖的OLTP和OLAP方案。集成Apache Hadoop及Apache Spark大數據平台。
- 可擴展:支持分散式存儲、數據多副本及橫向擴容,內置多種後端存儲引擎(包括RocksDB、Cassandra、ScyllaDB、HBase、Palo、MySQL以及InMemory等),也可外掛程式式輕鬆擴展後端存儲引擎。
- 開放:HugeGraph代碼開源(Apache 2 License),客戶可自主修改定製,選擇性回饋開源社區。
HugeGraph圖資料庫主要功能
優勢功能
- 支持百億邊+快速導入,支持橫向擴容。HugeGraph針對百億級數據場景進行定製化最佳化,實現大數據環境下的快速導入和高效查詢,同時能夠對接Hadoop和Spark GraphX等已有大數據平台。
- 支持Gremlin圖查詢語言,Gremlin提供了標準、靈活、豐富的圖查詢語法。
- 支持多後端存儲引擎,後端存儲引擎可配置,可外掛程式式擴展新的後端存儲引擎。
- 支持快速的批量導入、批量導出功能,同時用戶可靈活定義導入導出格式,支持CSV、TXT、JSON等格式,支持從HDFS、MySQL、SQL Server、Oracle、PostgreSQL等數據源直接導入數據。
- 支持廠記憶體儲系統。
基礎功能
- 頂點、邊:支持基本增刪改查操作,支持有向圖,支持兩頂點間同一類型多條邊,支持超級點。
- 屬性:支持屬性圖、支持多值屬性、支持多樣化的屬性類型、支持頂點屬性追加與合併。
- 元數據:支持豐富的Schema校驗,如屬性是否可空(可選),支持Schema動態修改。
- 索引:支持二級索引、範圍索引、全文索引,支持聯合索引。
- 事務:遵循Tinkerpop事務規範,支持Read Committed級別事務。
- 多頂點ID策略:支持主鍵ID、支持自動生成ID、支持用戶自定義字元串ID、支持用戶自定義數字ID。
- 大規模數據:支持批量插入頂點/邊、支持超級頂點、支持流式分頁獲取、支持Shard並行獲取。
- 最佳化的圖接口:最短路徑(Shortest Path)、K步連通子圖(K-neighbor)、K步到達鄰接點(K-out)等。
- 其它:支持圖變數(Graph Variables)、兼容性上已通過Apache Tinkerpop官方測試用例90%兼容測試。
高級功能
- 多圖實例:支持多個圖實例,圖之間數據相互隔離。
- 用戶認證:支持多用戶,支持用戶許可權認證,支持用戶角色訪問控制。可輕鬆對接現有用戶認證系統。
- 監控接口:支持系統狀態監控、API訪問時間監控、性能數據監控等。
- 備份恢復:支持線上備份、支持備份數據的恢復。
- 雲環境適應:兼容多個雲廠商平台,輕鬆對接公有雲、私有雲和混合雲等多種雲環境。
- 商業版本:商業版本提供技術諮詢、解決方案、定製化需求等服務。
接口支持
- Gremlin接口:支持標準、靈活的Gremlin查詢接口。
- Restful API接口:支持功能豐富、簡單易用的HTTP Restful接口。提供頂點、邊、元數據等的基本操作接口;此外提供各種高級查詢接口,包括最短路徑、多路徑、交叉點、N步可達鄰居等。
- Java Client客戶端:支持Java語言客戶端,用戶可根據自身需求實現其它語言客戶端。
周邊工具
- 一鍵部署(hugegraph-tools/deploy):通過部署工具簡單輕鬆的一鍵部署所有組件。
- 可視化界面(hugegraph-studio):基於Web的可視化環境,提供圖操作界面、圖數據展示與分析。
- 導入工具(hugegraph-loader):數據導入工具,支持從txt、csv、json等格式檔案導入到HugeGraph。
- 導出工具(hugegraph-tools/dump):數據導出工具,可將頂點及關聯邊導出到檔案,支持用戶實現formatter自定義格式。
- 備份恢復工具(hugegraph-tools/backup&restore):數據備份與恢復工具,支持定時備份、手動備份、手動恢復等功能。
- Gremlin任務工具(hugegraph-tools/gremlin):Gremlin任務執行工具,支持同步執行Gremlin查詢與分析(OLTP),支持異步執行Gremlin任務(OLAP)。
- 集成Spark GraphX工具(hugegraph-spark):基於Spark GraphX的大數據環境下的圖分析工具。
HugeGraph圖資料庫版本更新
- 2019-04-19: Release HugeGraph 0.9.2
- 2018-11-23: Release HugeGraph 0.8.0
- 2018-07-30: Release HugeGraph 0.7.4
- 2018-06-01: Release HugeGraph 0.6.1
- 2018-03-29: Release HugeGraph 0.5.6
- 2018-01-12: Release HugeGraph 0.4.4
- 2017-11-06: Release HugeGraph 0.3.3
- 2017-09-08: Release HugeGraph 0.2.4
- 2017-08-15: Release HugeGraph 0.2