我应该使用什么软件进行图形分布式存储和处理?

时间:2018-05-28 14:39:15

标签: database apache-spark graph neo4j distributed-computing

问题简而言之:

  1. JSON格式的输入数据量很大。就像现在它大约1 Tb,但它会增长。有人告诉我,我们将要有一个集群。
  2. 我需要处理这些数据,从中制作图表并将其存储在数据库中。因此,每次我获得一个新的JSON时,我都必须在数据库中遍历整个图形以完成它。
  3. 稍后我将在浏览器中拥有一个瘦客户端,在那里我将可视化图形的某些部分,搜索它,遍历它,进行一些过滤等等。所以这个系统不是高负载,只是很多处理和数据。
  4. 我没有分布式系统,NoSQL数据库和其他类似“大数据”的经验。在我的小研究中,我发现它们太多而现在我只是迷失了。

    目前我的白板上有什么:

    1. Apache Spark的GraphX(GraphFrames),用于在某些存储(HDFS,Cassanda,HBase,...)和处理器(Yarn,Mesos,Kubernetes,...)之上进行分布式计算。
    2. 某些图表数据库。我认为在neu​​s4j中使用像Cipher这样的图形查询语言或在JanusGraph / TitanDB中使用Gremlin是很好的。 Neo4j很好,但它只在EE中集群,我需要一些开源的东西。所以现在我正在考虑后者,默认情况下有Gremlin + Cassandra + Elasticsearch。
    3. 也许我不需要其中任何一个,只需将图形存储为像Postgres这样的RDBMS中的邻接矩阵就可以了。
    4. 不知道我是否需要2或3中的Spark。我是否需要它?
    5. 我的主管告诉我查看Elasticsearch。但我想我只能将其用作额外的全文搜索引擎。

      感谢您的回复!

1 个答案:

答案 0 :(得分:1)

让我们从几个后续问题开始:

  1. 如果数据总量(接近),则1Tb不是大量数据。是吗 ?您期望获得多少新数据以及它将以何种速度到达。
  2. 如果每个JSON只是指图形的一小部分,为什么你必须遍历整个图?它既可以是新数据,也可以是现有数据的更新(您应该能够精确定位),不是吗?
  3. 是的,那就是你如何使用图表数据库......
  4. 其余的取决于你的回答1)。如果我们正在谈论IOT到达事件的数量(每秒数万......持续),您可能需要大数据解决方案。如果没有,你的主要问题是完成初始加载并从那里轻松航行; - )。

    希望这有帮助。

    此致 汤姆