7.5-圖形數據庫-2_第1頁
7.5-圖形數據庫-2_第2頁
7.5-圖形數據庫-2_第3頁
7.5-圖形數據庫-2_第4頁
7.5-圖形數據庫-2_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

4、存儲節點數據、節點label及其序列Id包括存儲節點數組、數組的下標即是該節點的ID 、最大的ID 及已經free的ID。(2)存儲 relationship 的文件: 存儲關系數據、關系組數據、關系類型、關系類型數組數據、關系類型的名稱及其序列Id包括存儲關系 record 數組數據、關系 group數組數據、儲關系類型數組數據、關系類型 token 數組數據 和ID。 2、存儲結構(3)存儲 label 的文件: label token數據、名字數據及其序列Id 包括存儲lable token 數組數據、 label token 的 names 數據 和ID。(4)存儲 property

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

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

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

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

溫馨提示

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

評論

0/150

提交評論