大數據時代,數據間的關聯蘊藏著重要的商業(yè)價值,如何在海量數據中挖掘關聯信息是企業(yè)的一大挑戰(zhàn),圖數據庫應運而生并飛速發(fā)展。圍繞圖數據庫,介紹了基礎定義、技術架構、圖數據庫計算特點等概念,梳理了國內外圖數據庫產業(yè)側的發(fā)展現狀,最后總結了圖數據庫技術未來發(fā)展趨勢。
一 引言
當前,互聯網、物聯網、金融等領域中積累了海量的數據,數據間的關聯可以產生重要的價值。隨著大數據技術的不斷發(fā)展,如何匯集各個領域數據、通過數據間的關聯與分析挖掘海量數據的價值成為了各行業(yè)關注的重點。在技術的探索中,圖處理技術為數據賦能提供了新的方式,可驅動行業(yè)更好地發(fā)展。圖數據通過將實體與關系點變化的方式將知識結構化保存,是一種基于事務關聯關系的模型表達,具有數據天然可解釋性,備受學術界和工業(yè)界推崇。在數據的關聯分析中,傳統(tǒng)的關系型數據庫需要進行大量的關聯操作,在小規(guī)模數據的情況下這樣的操作還可以接受,但是當數據規(guī)模逐漸增大,關聯操作會造成性能呈指數級下降。圖數據庫相較于傳統(tǒng)關系型數據庫和NoSQL數據庫,其豐富完整的關系表達提供了高效的關聯查詢和完備的實體信息。
大型互聯網公司很早便開始創(chuàng)建自己專有的圖處理技術及圖數據庫系統(tǒng),用于社交關系挖掘、網頁檢索與排序、推薦系統(tǒng)等,并獲得了巨大的商業(yè)成功。目前,通信、互聯網、電子商務、社交網絡和物聯網等領域中積累了大量的圖數據,其規(guī)模巨大并且不斷增長:Facebook的社交網絡規(guī)模在2011年已超過8 億頂點;而騰訊QQ的社交網絡目前在10 億個頂點的規(guī)模;在電信行業(yè)中,廣州市僅一個月內由電話呼叫方和被呼叫方組成的圖的規(guī)模就超過4.5 千萬個頂點、1.5 億條邊;而ClueWeb[1]數據包含海量的網頁,其于2012年公布的數據集已經達到10 億個頂點、425 億條邊的規(guī)模,僅是存儲邊的列表文件就超過400 GB。但是,相比其他的數據庫技術,目前圖數據庫還處于起步階段,各方面的技術概念還未統(tǒng)一,應用場景仍在探索,選型實施資料較少。本文將首先圍繞圖數據庫技術給出圖數據庫相關定義,從技術路線和性能進行圖數據庫與傳統(tǒng)關系型數據庫的對比研究;然后,介紹國內外圖數據庫產業(yè)發(fā)展現狀與應用場景;最后,根據產業(yè)現狀給出圖數據庫的一些未來發(fā)展趨勢研判。
二 圖數據庫概述
圖數據庫以圖論為理論基礎,使用圖模型,將關聯數據的實體作為頂點存儲,關系作為邊存儲,解決了數據復雜關聯帶來的嚴重隨機訪問問題。在分類上,圖數據庫可歸類為NoSQL數據庫。
2.1圖模型
圖是一組對象的集合,由頂點和邊構成,頂點表示實體或實例,如人、賬號、組織、業(yè)務等,它們可以類比于關系型數據庫里的記錄或行,或文檔數據庫里的文檔;邊是連接頂點的線,表示頂點之間的關聯關系。邊是圖數據庫中的關鍵概念,在關系型數據庫或文檔存儲數據庫中,沒有對邊的抽象概念進行直接實現。圖模型主要包含屬性圖、資源描述框架(Resource Description Framework,RDF)圖兩種(見圖1)。
圖1 圖模型示意圖
2.2圖數據庫定義
圖數據庫基于圖模型,對圖數據進行存儲、操作和訪問,與關系型數據庫中的聯機事務處理(Online Transactional Processing,OLTP)數據庫是類似的,支持事務、可持久化等特性。圖數據庫根據底層存儲實現的不同,可分為原生圖數據庫和非原生圖數據庫兩種。
原生圖數據庫:使用圖模型進行數據存儲,可以針對圖數據做優(yōu)化,從而帶來更好的性能,例如 Neo4j。
非原生圖數據庫:底層存儲使用非圖模型進行存儲,在存儲之上封裝圖的語義,進行圖處理,其優(yōu)點是易于開發(fā),適合產品眾多的大型公司,形成相互配合的產品棧,例如Titan、JanusGraph底層采用KV存儲非圖模型。
相較關系型數據庫,圖數據庫基于圖模型存儲和處理的方式主要有以下優(yōu)勢。
萬物互聯,圖數據可以更直觀地表達數據之間的關聯關系。
圖數據有強兼容性,可以更容易地存儲、擴展多種類型的數據。
對關系數據的處理效率是關系型數據庫的2~3個數量級。
Ian Robinson等曾經在5000 萬點和邊的數據規(guī)模下,對比了Neo4j與關系型數據庫在關聯查詢的時間消耗(見表1),隨著關聯查詢深度的增加,關系型數據庫性能消耗呈指數倍增長甚至無法執(zhí)行。
表1 Neo4j與某關系型數據庫在關聯查詢的性能對比
2.3圖數據庫技術架構
當前,市場上主流的圖數據庫主體架構如圖2所示,分為存儲層、計算層和接口層。
圖2 圖數據庫系統(tǒng)架
( 1 ) 存儲層:圖數據庫有原生和非原生兩種存儲方式,這些數據通過圖存儲引擎進行圖數據結構、索引邏輯上的管理。例如,原生圖數據庫中常使用鏈表或者B+樹、LSM樹(Log-Structured Merge-Tree,日志結構合并樹)等樹狀結構存儲圖數據;而非原生圖數據庫一般復用外部NoSQL數據庫進行數據存儲,然后通過存儲引擎將實際的數據以圖數據的邏輯進行管理。
?。?2 ) 計算層:提供對操作的處理和計算,主要工作是基礎圖算法的實現,其次也包括數據庫通用的語法解析、任務調度、事務管理、優(yōu)化器等組件。目前,大多數圖數據庫只能提供基礎圖算法,復雜的全圖分析可能需要圖處理引擎對接進行。
?。?3 ) 接口層:提供了查詢語言接口、API、SDK、可視化組件等對外提供服務。當前,圖數據庫沒有統(tǒng)一的查詢語言,因此圖數據庫產品在提供其原有查詢語言外,也可能會提供Cypher、Gremlin等主流查詢語言接口便于用戶使用。此外,圖數據的天然可解釋性使得大多數圖數據庫產品也會提供一定的可視化能力,在數據庫層面直觀地為用戶展現數據間的關聯情況。
三 圖數據庫的計算
圖數據庫的使用場景主要為實時查詢,包括本地查詢、鄰居查詢和局部遍歷。用戶通過圖查詢語言在圖上進行遍歷、過濾和統(tǒng)計等操作,以滿足實時的需求。此外,用戶常常會提出比實時查詢更為復雜的分析需求以挖掘圖數據中的潛在價值。在圖算法的實現上,最理想化的選擇是在圖數據庫上直接實現圖算法,但由于圖數據庫更側重于高并發(fā)和海量存儲,全圖算法更側重于迭代計算,因此目前更為常見的選擇是提供另外的圖處理引擎與圖數據庫集成(見圖3):從圖數據庫對接或導入數據到圖處理引擎中進行離線分析,結合其更為強大的計算能力對全圖進行迭代計算,尋找某種特定模式(社區(qū)發(fā)現或欺詐模式)或者路徑,滿足數據挖掘的應用需求。
圖3 圖數據庫實時查詢與離線分析
3.1實時查詢
數據庫為實時查詢提供了兩類常用的圖算法。
?。?1 ) 圖遍歷:也被稱為圖搜索,是指訪問圖中每個頂點的過程,對圖的訪問和更新都以圖遍歷為基礎。圖遍歷常見算法包括廣度優(yōu)先搜索和深度優(yōu)先搜索。
?。?2 ) 路徑發(fā)現:用以識別最符合大型網絡中兩點之間某些條件下的最短路徑。路徑發(fā)現常見算法包括最短路徑、最小權重生成樹和兩兩最短路徑。
3.2離線分析
離線分析需要較長的時間來完成,分析的算法也相對復雜,可根據解決問題的目的不同分為以下幾類。
中心性:是社交網絡分析中常用的一個概念,用以表達社交網絡中一個點或者一個人在整個網絡中所在中心的程度。通過知道一個頂點的中心性,可以用來了解和判斷該頂點在網絡中所占據的重要性。中心性常見算法包括佩奇排名、中介中心性、緊密度中心性和調和中心性。
社群發(fā)現:用以劃分復雜網絡的社群結構。在復雜網絡的研究中,如果網絡的頂點可以被容易地分組成頂點集,且使得每組頂點在內部密集連接,則稱網絡具有社群結構。這意味著社群內的點的連接更為緊密,社群間的連接較為稀疏。社群發(fā)現常見算法包括Louvain算法和標簽傳播算法。
圖挖掘:是基于圖的數據挖掘,用來發(fā)現數據的模式。通過分析圖數據,發(fā)現有趣、意外、有用的模式是非常必要的,可以用來幫助理解數據或作出決策,在社交網絡、醫(yī)藥化學、交通運輸網絡等諸多領域中有著重要意義。常用的圖挖掘算法包括頻繁子圖和數三角形。
隨著人工智能技術的發(fā)展,機器學習、深度學習、神經網絡等算法也可通過圖處理引擎分析圖數據庫中的數據價值。當前,國際主流的圖處理引擎包括GraphX、GraphLab、Giraph等(見表2)。
表2 3類圖處理引擎
四 國內外圖數據庫產業(yè)發(fā)展現狀
根據第三方機構db-engines.com[3]的統(tǒng)計數據,近年來各類別數據庫中圖數據庫受歡迎程度可謂是水漲船高,在學術界和工業(yè)界均是討論熱點。在工業(yè)界,自2007年第一款圖數據庫Neo4j問世開始,圖數據庫技術便不斷更新迭代并涌現了大批競爭者,到如今發(fā)展不過短短十余年,就已經歷了底層存儲、架構等技術方面的重大變革,由最初的單機圖數據庫向分布式大規(guī)模圖數據庫發(fā)展。
?。?1 ) Graph 1.0:小規(guī)模原生圖存儲
Graph 1.0時代(2007—2010年),以Neo4j為代表,采用原生圖的方式實現圖存儲,獲得了比關系型數據庫快得多的復雜關聯數據查詢性能。然而,當時在軟件架構設計上只支持單機部署,圖數據庫產品性能和業(yè)務擴展能力有限。
?。?2 ) Graph 2.0:分布式大規(guī)模圖存儲
Graph2.0時代(2010年至今),隨著大數據和物聯網的蓬勃發(fā)展,數據本身的豐富程度增加,數據之間的關聯性增多,擴展性成為數據庫行業(yè)共同的痛點,分布式架構的興起催生了很多的分布式圖數據庫項目。在這一發(fā)展階段,支持分布式大規(guī)模圖存儲是關注的重點,圖存儲是否以原生的方式實現,不再是那么重要的問題,例如OrientDB選擇了支持原生圖存儲,自研了分布式圖數據存儲模塊,而JanusGraph則是在其他數據庫(Cassandra、HBase等)之上封裝實現圖的語義。通過支持在通用硬件上進行水平擴展,分布式圖數據庫具備了在海量關聯關系數據的存儲與實時深度查詢上絕佳的性能,但是在全圖分析等需要迭代計算的場景下仍需要結合圖處理引擎進行離線計算與分析。
目前,國外圖數據庫市場上開源、商用圖數據庫并駕齊 驅,其中開源圖數據庫有Neo4j、JanusGraph、ArangoDB等,商用圖數據庫有Neptune(亞馬遜)、Cosmos(微軟)、TigerGraph等。而我國圖數據庫產業(yè)發(fā)展也隨著時代的更替而蓬勃發(fā)展,產品形態(tài)豐富??傮w來看,國內數據庫產品在大數據時代起步發(fā)展,有向分布式發(fā)展的需求與趨勢,強調對實時復雜圖查詢的性能要求,多使用自研的查詢語言,部分產品支持Cypher或Gremlin等查詢語言。經中國信息通信研究院的詳細調研及初步估計,當前國內的圖數據庫已有20 余款產品,主要由4 類研發(fā)主體發(fā)起,其特點如下。
各大高校實驗室、研究所在圖數據庫發(fā)展初期研究開發(fā)的數據庫產品,主要聚焦于支持RDF圖模型的圖數據庫。
大型互聯網企業(yè)由于自身積累的海量數據以及業(yè)務需求,催生了相關的數據庫產品。這些產品考慮到企業(yè)原有數據系統(tǒng)的情況,結合原有數據系統(tǒng)而開發(fā)的非原生圖數據庫不在少數,但絕大多數使用分布式架構以供企業(yè)內部使用,產品迭代較快,當前也有部分產品實現了商業(yè)化。
新興創(chuàng)業(yè)公司的圖數據庫產品,其最大特點是完全自主研發(fā),強調高性能與數據庫的事務性,但是產品版本更新迭代相對較少,目前也在往分布式架構發(fā)展。
傳統(tǒng)IT服務商在圖數據庫的發(fā)展浪潮下,也加快了圖數據庫產品的研發(fā)步伐,并且通常與企業(yè)已有的其它產品(例如知識圖譜工具)一同對外輸出。
五 圖數據庫發(fā)展趨勢
目前,圖數據庫正處于飛速發(fā)展的狀態(tài),隨著概念的普及、需求的變化,圖數據庫正在向如下方向發(fā)展。
5.1查詢語言統(tǒng)一化
目前,圖數據庫市場查詢語言不一,有使用Gremlin、Cypher、SPARQL的,也有使用自己開發(fā)定義的查詢語言。用戶在業(yè)務中使用圖數據庫時學習成本高,對圖數據庫產品的推廣帶來一定的阻礙。同時,國際上ISO/IEC的GQL制定耗時4年,與當前圖數據庫市場的發(fā)展速度嚴重不匹配。如何解決這一問題已是廠商與用戶共同關注的問題。
5.2圖數據庫與圖處理引擎融合化
現今圖數據庫只能提供較簡單的圖算法進行實時查詢,不能獨立完成復雜的全圖迭代計算,需要與圖處理引擎結合,增加了額外的處理過程,加重了系統(tǒng)負擔。當前,分布式圖數據庫支持了更大規(guī)模的數據,同時通過優(yōu)化保證了查詢的高性能,未來與圖處理引擎深度融合從而為用戶提供更簡單、更復雜的計算能力是圖數據庫廠商的研發(fā)方向。此外,圖神經網絡理論與技術的飛速發(fā)展也值得關注。
4.3軟硬件一體化
圖數據庫數據非規(guī)則訪問的特性一直是性能提升的重要瓶頸,隨著圖切分、圖算法的不斷提升,圖數據庫對底層硬件的需求愈加迫切,將來可以通過軟硬件協(xié)同設計的方式,比如采用NVM(非易失性存儲器)減少持久化存儲的開銷,使用RDMA(遠程直接數據存取)增強通信效率,或者將事務的部分要求交給硬件(例如HTM)來控制、簡化軟件設計等。
六 結束語
本文給出了圖數據庫的基本定義和通用架構,介紹了圖數據庫的數據處理方式和相關算法,通過調研對國內外圖數據庫產業(yè)發(fā)展進行了梳理和闡述,同時提出了產業(yè)側未來的一些發(fā)展趨勢?,F在,圖數據庫產品還在起步初期,技術能力還在飛速變革,應用市場也在不斷的探索擴展。當前,圖數據庫在知識圖譜、社交網絡、金融領域等均有不俗表現,隨著5G時代的到來,萬物互聯的概念越發(fā)深入人心,圖數據正是這種關聯方式最直接的表達。但是,圖數據庫產業(yè)的發(fā)展仍需要標準化工作來找尋正確的方向,普及觀點、規(guī)范產品能力依然是產業(yè)當前的重中之重。