我真的无法弄清楚我的问题在哪里。 我正在使用Titan 0.5.0(这与新版Titan版本的问题相同......)
我想从csv文件加载一堆顶点和边,其中包含100k个条目(每行导致至少3个节点和一些边)到我的图中。 它需要大约5分钟才能完成导入。
所以我尝试了同样的配置storage.batch-loading = true.
它只需2分钟即可完成导入,速度更快。
但问题是,如果我打开storage.batch-loading = true
选项,则节点和边缘不会保存到数据库中。因此,如果我关闭Gremlin并重新打开我的图表,它就是空的。
它的工作方式就像将storage.batch-loading
设置为false的魅力一样。它需要更长的时间,但条目保存持久。
是的,我在导入后提交Batchgraph以及图表本身。 我错过了什么吗?
在这个例子中,我想导入大约30k个节点进行测试,但它们也没有保存持久性。 配置:
storage.backend=berkeleyje
storage.directory=graph
storage.batch-loading = true
query.fast-property = true
Gremlin脚本:
g = TitanFactory.open("../graphs/batchImportTest2/batchImportTest2.properties")
//1 Prepare Graph for import
m = g.getManagementSystem();
username = m.makePropertyKey('username').dataType(String.class).make()
m.buildIndex('byUsername',Vertex.class).addKey(username).unique().buildCompositeIndex()
email = m.makePropertyKey('email').dataType(String.class).make()
m.buildIndex('byEmail',Vertex.class).addKey(email).unique().buildCompositeIndex()
m.commit()
g.commit()
//2 Import Nodes and Edges
bg = new BatchGraph(g, VertexIDType.STRING, 50000)
new File("userInfo_js.txt").eachLine({ final String line ->def (username,email) = line.split('\t')*.trim();def userVertex = bg.getVertex(username) ?: bg.addVertex(username); userVertex.setProperty("username", username);userVertex.setProperty("email", email)})
bg.commit()
g.commit()
答案 0 :(得分:0)
我试图重现它,但它都按预期工作。有关我的shell会话的完整记录,请参阅我的要点,也许您可以发现差异: