1. 程式人生 > >HugeGraph圖資料庫有哪些功能?

HugeGraph圖資料庫有哪些功能?

HugeGraph簡介

圖資料庫(Graph Database)是一種使用頂點、邊和屬性來表示與儲存資料,並以圖結構進行語義查詢的資料庫。圖資料庫的關鍵概念是邊,通過邊將頂點連線在一起,從而進行快速的圖檢索操作。

HugeGraph是一款開源圖資料庫系統,可以儲存海量的頂點(Vertex)和邊(Edge), 實現了Apache TinkerPop 3框架,支援Gremlin查詢語言。 HugeGraph支援多使用者並行操作,使用者可輸入Gremlin查詢語句,並及時得到圖查詢結果。也可在使用者程式中呼叫HugeGraph API進行圖分析或查詢。

下面是一個使用HugeGraph構建的《紅樓夢》主要家族成員圖譜: HugeGraph-紅樓夢圖譜

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軟體架構圖

HugeGraph功能

優勢功能

  • 支援百億邊+快速匯入,支援橫向擴容。HugeGraph針對海量資料場景進行定製化優化,實現大資料環境下的快速匯入和高效查詢,同時能夠對接Hadoop和Spark GraphX等已有大資料平臺。
  • 支援Gremlin圖查詢語言,Gremlin提供了標準、靈活、豐富的圖查詢語法。
  • 支援多後端儲存引擎,後端儲存引擎可配置,可外掛式擴充套件新的後端儲存引擎。
  • 支援快速的批量匯入、批量匯出功能,同時使用者可靈活定義匯入匯出格式。
  • 支援百度儲存系統。

基礎功能

  • 頂點、邊:支援基本增刪改查操作,支援有向圖,支援兩頂點間同一型別多條邊。
  • 屬性:支援屬性圖、支援多值屬性、支援多樣化的屬性型別、支援頂點屬性追加與合併。
  • 元資料:支援豐富的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。
  • 視覺化介面:基於Web的視覺化環境,提供圖操作介面、圖資料展示與分析。參考hugegraph-studio。
  • 匯入工具:資料匯入工具,支援從txt、csv、json等格式檔案匯入到HugeGraph。參考hugegraph-loader。
  • 匯出工具:資料匯出工具,可將頂點及關聯邊匯出到檔案,支援使用者實現formatter自定義格式。參考hugegraph-tools/dump。
  • 備份恢復工具:資料備份與恢復工具,支援定時備份、手動備份、手動恢復等功能。參考hugegraph-tools/backup&restore。
  • Gremlin任務工具:Gremlin任務執行工具,支援同步執行Gremlin查詢與分析(OLTP),支援非同步執行Gremlin任務(OLAP)。參考hugegraph-tools/gremlin。
  • 整合Spark GraphX工具:基於Spark GraphX的大資料環境下的圖分析工具。參考hugegraph-spark。