【发布时间】:2015-03-07 05:41:46
【问题描述】:
我真的不知道我的问题出在哪里。 我使用的是 Titan 0.5.0(新的 Titan 版本也存在同样的问题......)
我想将具有 100k 个条目(每行至少有 3 个节点和一些边)的 csv 文件中的一组顶点和边加载到我的图中。 最终完成导入大约需要 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()
【问题讨论】:
标签: persistent berkeley-db titan bulk-load