7.5-圖形數(shù)據(jù)庫-2_第1頁
7.5-圖形數(shù)據(jù)庫-2_第2頁
7.5-圖形數(shù)據(jù)庫-2_第3頁
7.5-圖形數(shù)據(jù)庫-2_第4頁
7.5-圖形數(shù)據(jù)庫-2_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、7.5 圖形數(shù)據(jù)庫Neo4j的圖存儲結(jié)構(gòu)圖形數(shù)據(jù)庫的集群結(jié)構(gòu)【本節(jié)學(xué)習(xí)目標(biāo)】一、Neo4J數(shù)據(jù)庫的存儲結(jié)構(gòu) 1核心概念(1) Nodes(節(jié)點(diǎn),類似地鐵圖里的一個地鐵站): 圖的基本單位節(jié)點(diǎn)和關(guān)系,都可包含屬性,關(guān)系和節(jié)點(diǎn)還可以有零到多個標(biāo)簽。(2) Relationships(關(guān)系,類似兩個相鄰地鐵站之間路線): 組織和連接節(jié)點(diǎn),一個開始節(jié)點(diǎn)和一個結(jié)束節(jié)點(diǎn)。關(guān)系有方向進(jìn)和出。(3) Properties(屬性,類似地鐵站的名字,位置,大小,進(jìn)出口數(shù)量等):節(jié)點(diǎn)和關(guān)系可以擁有0到多個屬性,屬性類型java的數(shù)據(jù)類型一致,分為數(shù)值、字符串、布爾、以及其他的一些類型,字段名必須是字符串。1 核心概

2、念-(4) Labels(標(biāo)簽,類似地鐵站的屬于哪個區(qū)): 標(biāo)簽通過形容一種角色或者給節(jié)點(diǎn)加上一種類型,一個節(jié)點(diǎn)可有多個類型,標(biāo)簽在給屬性建立索引或者約束時候也會用到。(5) Traversal(遍歷,類似看地圖找路徑): 查詢是遍歷圖譜然后找到路徑,一個開始節(jié)點(diǎn),遍歷相關(guān)路徑上的節(jié)點(diǎn)和關(guān)系,得到最終的結(jié)果。(6) Paths(路徑,類似從一個地鐵站到另一個地鐵站的所有的到達(dá)路徑): 路徑是一個或多個節(jié)點(diǎn)通過關(guān)系連接起來的產(chǎn)物1、核心概念(7) Schema(模式,類似存儲數(shù)據(jù)的結(jié)構(gòu)): neo4j是一個無模式或less模式的圖譜數(shù)據(jù)庫,使用它不需要定義任何schema,(8)Indexes(

3、索引): 遍歷圖通過需要大量的隨機(jī)讀寫,在字段屬性上構(gòu)建索引,構(gòu)建索引是一個異步請求,在后臺創(chuàng)建直至成功后,才能生效。(9)Constraints(約束): 約束定義在某個字段上,限制字段值唯一,創(chuàng)建約束會自動創(chuàng)建索引。2、存儲結(jié)構(gòu)Node和Relationship 的 Property 是用一個 Key-Value 的雙向列表來保存的; Node 的 Relatsionship 是用一個雙向列表來保存的,通過關(guān)系,可以的找到關(guān)系的前導(dǎo)和后繼節(jié)點(diǎn)( from-to Node). Node 節(jié)點(diǎn)保存第1個屬性和第1個關(guān)系ID。圖的存儲結(jié)構(gòu)包括5類文件2、存儲結(jié)構(gòu)(1) 存儲 node 的文件,

4、存儲節(jié)點(diǎn)數(shù)據(jù)、節(jié)點(diǎn)label及其序列Id包括存儲節(jié)點(diǎn)數(shù)組、數(shù)組的下標(biāo)即是該節(jié)點(diǎn)的ID 、最大的ID 及已經(jīng)free的ID。(2)存儲 relationship 的文件: 存儲關(guān)系數(shù)據(jù)、關(guān)系組數(shù)據(jù)、關(guān)系類型、關(guān)系類型數(shù)組數(shù)據(jù)、關(guān)系類型的名稱及其序列Id包括存儲關(guān)系 record 數(shù)組數(shù)據(jù)、關(guān)系 group數(shù)組數(shù)據(jù)、儲關(guān)系類型數(shù)組數(shù)據(jù)、關(guān)系類型 token 數(shù)組數(shù)據(jù) 和ID。 2、存儲結(jié)構(gòu)(3)存儲 label 的文件: label token數(shù)據(jù)、名字?jǐn)?shù)據(jù)及其序列Id 包括存儲lable token 數(shù)組數(shù)據(jù)、 label token 的 names 數(shù)據(jù) 和ID。(4)存儲 property

5、的文件:屬性數(shù)據(jù)、類型、索引等及其序列Id 包括 property 數(shù)據(jù)、property (key-value 結(jié)構(gòu))的是數(shù)組的數(shù)據(jù)、 property (key-value 結(jié)構(gòu))的值是字符串的數(shù)據(jù)、property (key-value 結(jié)構(gòu))的key 的索引數(shù)、property (key-value 結(jié)構(gòu))的key 的字符串值和ID。 (5)其他的文件: 版本信息、日志等2、存儲結(jié)構(gòu)neo4j 主要有節(jié)點(diǎn)、屬性、關(guān)系等文件是以數(shù)組作為核心存儲結(jié)構(gòu);同時對節(jié)點(diǎn)、屬性、關(guān)系等類型的每個數(shù)據(jù)項(xiàng)都會分配一個唯一的ID,在存儲時以該ID 為數(shù)組的下標(biāo)。在訪問時通過其ID作為下標(biāo),實(shí)現(xiàn)快速定位。所

6、以在圖遍歷等操作時,可以實(shí)現(xiàn) free-index。二、圖數(shù)據(jù)庫的集群結(jié)構(gòu) 1 集群方式 Neo4j主要有兩種cluster方式:Ha(High avaiable)和Causal cluster方式。集群的主要特點(diǎn):高吞吐量,持續(xù)可靠性,災(zāi)難恢復(fù)。 Causal cluster: 1)核心服務(wù)器(core server),處理讀寫的操作,大多數(shù)的核心服務(wù)器主要處理寫操作和 2)一個或多個讀復(fù)制服務(wù)器(read replicas),只讀的實(shí)例,數(shù)據(jù)從核心服務(wù)器異步更新,這些適用于廣泛的數(shù)據(jù)地理分布,并允許跨大量服務(wù)器擴(kuò)展查詢工作負(fù)載。 HA cluster: 至少有三臺服服務(wù)器組成,1主2從,主

7、服務(wù)器完成寫入之后同步數(shù)據(jù)到從服務(wù)器,主服務(wù)器既可以寫也能讀,從服務(wù)器只能讀。HA群集可用于全天候正常運(yùn)行并提高讀取性能。1 集群方式3個節(jié)點(diǎn) 在這里以3個節(jié)點(diǎn)的Neo4j組成集群為例子, 討論其體系結(jié)構(gòu)和數(shù)據(jù)的操作原理。圖展示了由三個Neo4J結(jié)點(diǎn)所組成的Master-Slave集群。每個集群都包含一個Master和多個Slave。Master負(fù)責(zé)數(shù)據(jù)的寫入,接下來Slave則會將Master中的數(shù)據(jù)更改同步到自身。2 集群寫入方式 集群數(shù)據(jù)的寫入通過Master完成,圖數(shù)據(jù)修改的復(fù)雜性(修改圖結(jié)點(diǎn)本身、維護(hù)各個關(guān)系等),圖所進(jìn)行的操作是讀比寫多很多。Neo4J內(nèi)部還有一個寫隊(duì)列,暫時緩存向

8、Neo4J實(shí)例的寫入操作,從而使得Neo4J能夠處理突然到來的大量寫入操作。在最壞的情況就是Neo4J集群需要面對持續(xù)的大量的寫入操作。需要考慮Neo4J集群的縱向擴(kuò)展了3 集群讀入方式 數(shù)據(jù)的讀取可以通過集群中的任意一個Neo4J實(shí)例來完成。Neo4J內(nèi)部使用一個緩存記錄最近所訪問的數(shù)據(jù)。這些緩存數(shù)據(jù)會保存在內(nèi)存中以便快速地響應(yīng)數(shù)據(jù)讀取請求。在請求量非常巨大而且所訪Neo4J所提供的解決方案被稱為Cache-based Sharding。使用同一個Neo4J實(shí)例來響應(yīng)一個用戶所發(fā)送的所有需求。4 集群管理方式 Cluster Management則用來負(fù)責(zé)同步集群中各個實(shí)例的狀態(tài),并監(jiān)控其它Neo4J結(jié)點(diǎn)的加入和離開。負(fù)責(zé)維護(hù)領(lǐng)導(dǎo)選舉結(jié)果的一致性。啟動時,一個Neo4J數(shù)據(jù)庫實(shí)例將首先嘗試著加入由配置文件所標(biāo)明的集群。如果該集群存在,那么它將作為一個Slave加入。否則該集群將被創(chuàng)建,并且其將被作為該集群的Master。5 集群容錯機(jī)制 集群中一個實(shí)例失效了,其它實(shí)例會在短時間內(nèi)探測到,恢復(fù)到正常狀態(tài)將數(shù)據(jù)同步到最新。Master失效通過內(nèi)置的Leader選舉功能選舉出新的Master。在Cluster

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論