图分区技术基本概念【1】
這個概念跟關系型數據庫的表分區是類似的,也就是在圖結構數據量非常大的時候,怎么通過分布式的形式對圖進行切分。
在關系型數據庫的表分區的應用中
我們對表進行分區可能需要考慮的目的主要是:
? ? ??一個表存為多個分區之后的join和查詢的問題。
? ? ??同理:我們在設計圖分區策略的時候同樣需要考慮的是,圖進行分區之后,在做圖迭代算法(并行計算)時,最小化在數據量的傳輸,最小化IO操作,只有減少這部分的開銷,才能提高圖分區的性能。
一般而言,業界主要有這么幾種分區的技術:
edge-cut:邊分割
? ? ??邊分割的方式一般適合在圖數據中low-degree的數據分布中,也就是中圖的連接入度或者出度(有向圖)比較少的情況,這樣vertex的分割就會比較均勻,減少跨多個集群的數據交換;
vertex-cut:點分割
? ? ??點分割的方式跟邊分割的情況相反,在high-degree的圖數據分布的情況下,也就是節點的度特別大,通過點分割,就能夠同樣減少跨多個集群的數據交換,同時減少節點的副本;如PowerGraph的實現方式;
hybrid-cut:動態混合分割
? ? ??混合分割的技巧通常需要依賴于圖計算架構采集的動態的統計信息,
- 首先需要對圖的數據分布情況做估計,
- 然后再決定圖分割的策略,使用點分割還是邊分割的方式,
這種分割方式比較復雜,如Flink Gelly圖計算架構就采用這種混合的分割方式;
hash/random partitioning:哈希,隨機分區
這種分區方式比較簡單粗暴,一般是使用邊的hash或者節點的hash來分區,這種方式分區比較簡單,但是性能不能保證;
比如OrientDB采用的就是基于hash的分區方式;
總的來說,使用分區技術的圖分析架構,一般都是定位為OLAP的解決方案,目前還沒有OLTP性能不錯,也支持分區的圖數據庫引擎,商業產品TigerGraph和微軟的GraphEngine是少數宣稱既支持OLAP也支持OLTP的產品,后續的文章可以重點分析分析
詳細請參考:https://blog.csdn.net/temotemo/article/details/83382835
本人還是似懂非懂,以后慢慢補充!!!
總結
以上是生活随笔為你收集整理的图分区技术基本概念【1】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: log4.properties文件【笔记
- 下一篇: 藤校放榜后,100%升学率的斯坦福线上高