首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >通过gremlin服务器将多个xml数据文件插入到tinkerpop图形数据库中(带gremlin代码)

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

Stack Overflow用户
提问于 2020-06-12 10:40:04
回答 1查看 117关注 0票数 1

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

代码语言:javascript
代码运行次数:0
运行
复制
  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")
EN

回答 1

Stack Overflow用户

发布于 2020-06-16 19:58:32

这是一个很大的GraphML文件。我不确定我曾经遇到过这么大的一个。我想知道你是如何拆分它的,因为GraphML文件不容易拆分,因为它们是基于XML的,有一个头和一个结构,其中顶点和边在单独的节点中。正是由于这些(和其他)原因,TinkerPop开发了像Gryo和GraphSON这样的格式,这些格式可以很容易地拆分,以便在类似Hadoop的文件结构中进行处理。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62336643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档