【发布时间】:2018-11-26 15:39:50
【问题描述】:
对于图数据库,尤其是那些活跃的和分布式的,我知道一些但不是很多。像orientdb、Titan、Dex等。
关于图形处理框架,有大量的工具,如 graphx、graph lab、powergraph、xstream、pregel 等,而且每年都会推出更多。
谁能告诉我这两类工具的区别?它们可以交换吗?为什么图数据库作为图处理框架没有引起足够的关注?
【问题讨论】:
对于图数据库,尤其是那些活跃的和分布式的,我知道一些但不是很多。像orientdb、Titan、Dex等。
关于图形处理框架,有大量的工具,如 graphx、graph lab、powergraph、xstream、pregel 等,而且每年都会推出更多。
谁能告诉我这两类工具的区别?它们可以交换吗?为什么图数据库作为图处理框架没有引起足够的关注?
【问题讨论】:
图数据库和图处理框架的区别在于,数据库的构建是为了以图的基本形式保存数据,其中数据之间的关系是用边构建的,数据点是用节点/顶点构建的。一些数据库,比如 OrientDB 大大扩展了这个基本概念,使数据库更加通用。其他人则不太通用。虽然一般来说,主要目标是将数据保存为类似图形的形式、边和顶点。
另一方面,借助图形处理框架,它们获取一组数据并根据数据构建分析图。目标主要是分析数据中的图形模式或结构。
据我所知,我将尝试将其进行类比。
假设你有一个装满潘趣酒的潘趣碗(你的数据)。
在图形数据库场景中,拳头已经是一个图形,您可以查看碗并查看图形中的所有内容并对其进行分析。
使用图形处理框架,您也可以拥有一个装满东西的大酒杯,但它很模糊,您无法直接看到其中的任何图形。要获得某种类型的图表,您首先必须舀出一些冲头,比如说,“图形处理勺”。这使您可以看到某种图形一致性,具体取决于您选择尝试分析数据的算法。当然,取决于您的机器或系统,例如 Spark,图形处理包可能很大,甚至与您的整个潘趣碗一样大,甚至更大。
不过,从冲床(您的数据)中制作“合理的图表”需要时间和处理。另一件事是,如果你想存储这个新发现的分析图形冲头的勺子,你必须有另一个碗把它放进去。而且,如果你把勺子掉在地板上,你的图形数据就消失了.图形数据库不会发生这种情况。
我希望这是有道理的。
斯科特
【讨论】:
图数据库和图计算之间存在联系和隔离。
连接: 图数据库不仅提供数据存储,还提供一系列的图数据处理,例如解决SSSP问题需要图的遍历和计算,必须得到图处理框架的支持。
隔离: 对于PageRank、Greedy Graph Coloring等大部分的图计算,你不能使用图数据库,因为图数据库作为一个基本的存储和查询系统,并不需要具备做计算工作的能力。
如果我说错了请指正,我也是图计算的大一新生。
【讨论】: