通过gremlin服务器(使用gremlin代码)将多个xml数据文件插入tinkerpop图形数据库中

问题描述 投票:1回答:1

我有巨大的数据集,必须通过gremlin(gremlin服务器)将其插入到图形数据库中。由于xml文件太大(超过8gb),我决定将其拆分为多个可管理的9个xml文件(每个文件约1gb)。我的问题是,是否有办法通过gremlin服务器将这些数据文件插入到我的tinkerpop图形数据库中?即尝试这样的事情?或者,请问插入这些数据的最佳方法是什么?

  graph.io(IoCore.graphml()).readGraph("data01.xml")
  graph.io(IoCore.graphml()).readGraph("data02.xml")
  graph.io(IoCore.graphml()).readGraph("data03.xml")
  graph.io(IoCore.graphml()).readGraph("data04.xml")
  graph.io(IoCore.graphml()).readGraph("data05.xml")

gremlin graph-databases gremlin-server
1个回答
0
投票

这是一个很大的GraphML文件。我不确定我是否碰到过这么大的东西。我想知道您如何拆分它,因为GraphML文件不容易拆分,因为它们是基于XML的,具有标题和结构,其中顶点和边位于单独的节点中。出于这些原因(和其他原因),TinkerPop开发了诸如Gryo和GraphSON之类的格式,这些格式可以轻松拆分以在类似Hadoop的文件结构中进行处理。

就是说,假设您正确地分割了GraphML文件,因此每个文件都是一个完整的子图,我想您将能够按照建议的方式加载它们,但是,我会担心会占用多少内存需要这样做。 io()加载程序并非用于批量并行加载,而基本上拥有一个顶点的内存中高速缓存以加快加载速度。该内存中缓存实质上只是一个HashMap,不会使它的内容过期。因此,在进行加载时,您将需要能够将所有Vertex实例保存在特定文件的内存中。

我不知道您的要求是什么,或者最终如何得到如此大的GraphML文件,但是对于这种大小的图形,我会查看您正在使用的图形的提供程序特定的批量加​​载工具或一些自定义spark-gremlin或某种Gremlin脚本并行加载数据的方法。

© www.soinside.com 2019 - 2024. All rights reserved.