图分区技术基本概念【1】

本文探讨了图数据库在大规模数据时的分区策略,包括边分割、点分割和混合分割技术,旨在优化图迭代算法的性能,减少IO操作。边分割适合低度节点,点分割适合高度节点,混合分割则依据图的统计信息动态调整。此外,还提到了哈希和随机分区方法,以及OrientDB等具体实现。尽管目前缺乏支持OLTP的图数据库引擎,但TigerGraph和微软的GraphEngine声称同时支持OLAP和OLTP。
摘要由CSDN通过智能技术生成

这个概念跟关系型数据库的表分区是类似的,也就是在图结构数据量非常大的时候,怎么通过分布式的形式对图进行切分

在关系型数据库的表分区的应用中

我们对表进行分区可能需要考虑的目的主要是:
      一个表存为多个分区之后的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
本人还是似懂非懂,以后慢慢补充!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值