圖數(shù)據(jù)庫
數(shù)據(jù)庫替代品并不是新鮮事物,它們已經(jīng)以對象數(shù)據(jù)庫(OODBMS)、層次數(shù)據(jù)庫(如LDAP)等形式存在很長時間了。但是,過去幾年間,出現(xiàn)了大量新項目,它們被統(tǒng)稱為NOSQL數(shù)據(jù)庫(NOSQL-databases),而圖數(shù)據(jù)庫是NOSQL領(lǐng)域中,處理關(guān)系型數(shù)據(jù)的利器。
在NoSQL四種分類中,圖數(shù)據(jù)庫從最近十年的表現(xiàn)來看已經(jīng)成為關(guān)注度最高,也是發(fā)展趨勢最明顯的數(shù)據(jù)庫類型。下圖就是db-engines.com對最近三年來所有數(shù)據(jù)庫種類發(fā)展趨勢的分析結(jié)果。

圖數(shù)據(jù)庫源起歐拉和圖理論,也可稱為面向/基于圖的數(shù)據(jù)庫,對應(yīng)的英文是Graph database。圖數(shù)據(jù)庫的基本含義是以“圖”這種數(shù)據(jù)結(jié)構(gòu)存儲和查詢數(shù)據(jù),不是存儲圖片的數(shù)據(jù)庫。它的數(shù)據(jù)模型主要是以節(jié)點和關(guān)系(邊)來體現(xiàn),也可處理鍵值對。它的優(yōu)點是快速解決復(fù)雜的關(guān)系問題。
圖具有如下特征:
◆ 它包含節(jié)點和邊。
◆ 節(jié)點上有屬性(鍵值對)。
◆ 邊有名字和方向,并總是有一個開始節(jié)點和一個結(jié)束節(jié)點。
◆ 邊也可以有屬性。
說得正式一些,圖可以說是頂點和邊的集合,或者說更簡單一點兒,圖就是一些節(jié)點和關(guān)聯(lián)這些節(jié)點的聯(lián)系(relationship)的集合。圖將實體表現(xiàn)為節(jié)點,實體與其他實體連接的方式表現(xiàn)為聯(lián)系。我們可以用這個通用的、富有表現(xiàn)力的結(jié)構(gòu)來建模各種場景,從宇宙火箭的建造到道路系統(tǒng),從食物的供應(yīng)鏈及原產(chǎn)地追蹤到人們的病歷,甚至更多其他的場景。
一個簡單的示例如下:

產(chǎn)品架構(gòu)

我們的圖數(shù)據(jù)庫產(chǎn)品由4個模塊構(gòu)成.分別是,查詢和計算模塊,數(shù)據(jù)加載模塊,操作維護接口以及引擎核心。

各模塊功能說明如下:
◆ 查詢和計算:最終用戶用于在此語言基礎(chǔ)之上進行圖的遍歷和查詢,最終返回運行結(jié)果;如能提供RESTful API則能給開發(fā)者提供不少便利之處;
◆ 操作和運維:用于系統(tǒng)實時監(jiān)控,例如系統(tǒng)配置、安裝、升級、運行時監(jiān)控,甚至包括可視化界面等;
◆ 數(shù)據(jù)加載:包括離線數(shù)據(jù)加載和在線數(shù)據(jù)加載,既可以是批量的數(shù)據(jù)加載,也可以是流數(shù)據(jù)加載方式;
◆ 引擎核心:主要包括圖存儲和圖處理引擎這兩個核心。圖處理引擎負責(zé)實時數(shù)據(jù)更新和執(zhí)行圖運算;圖存儲負責(zé)將關(guān)系型數(shù)據(jù)及其他非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換成圖的存儲格式;HA服務(wù)負責(zé)處理處理數(shù)據(jù)容錯、數(shù)據(jù)一致性以及服務(wù)不間斷等功能。
圖數(shù)據(jù)庫適用場景


金融反欺詐

企業(yè)關(guān)系圖譜