【发布时间】:2018-07-09 17:52:23
【问题描述】:
我的用例是由数亿个顶点组成的图(比如 100M 到 1B)。每个顶点都有一组 10 个属性,这些属性基本上是根据顶点边缘的权重和相邻顶点的分数计算得出的分数。在图中添加(或删除)节点时,可能需要重新计算所有顶点的分数。这不需要实时完成,因此这绝对是一个 OLAP/批处理用例。还有一些非常简单的图 OLTP 要求,基本上只是读取给定顶点及其相邻节点的分数。 我正在尝试确定是否应该采用以下任何一种方法: 1- Giraph:这意味着以文件格式导出整个图形,将其加载到 Giraph,然后将结果加载回用于持久化图形的任何数据存储(Neo4J、Neptune、JanusGraph、HBase、RDBMS...) . 2- Tinkerpop3 的 GraphComputer:如果我理解正确,我可以直接在与 Tinkerpop3 兼容的图形数据库(JanusGraph、Neptune 等?)上运行 OLAP 图形更新算法,从而用一个工具同时解决 OLAP 和 OLTP 用例,无需进行额外的数据导入/导出。
【问题讨论】:
-
经过分析,我们决定使用 JanusGraph 及其与 Tinkerpop 兼容的实现。我们将利用其 SparkGraphComputer 进行 OLAP 处理。
标签: graph-theory olap tinkerpop giraph oltp