2013-09-25 74 views
4

任何人都可以提供一些示例代碼或關於如何將一個1MB CSV節點和另一個1MB CSV邊緣導入到Cassandra上運行的Titan圖形數據庫的提示?如何將CSV文件導入Titan圖形數據庫?

我有通過Gremlin導入的小型CSV文件,但這似乎不適合大文件。

我見過Faunus可以做到這一點,但我想避免花費幾天的時間設置它。

它看起來像BatchGraph可能是要走的路(https://github.com/tinkerpop/blueprints/wiki/Batch-Implementation),但該示例似乎是不完整的。

回答

6

我的問題得到回答在https://groups.google.com/forum/#!topic/aureliusgraphs/ew9PJVxa8Xw

1)小鬼腳本是罰款1MB的進口(斯蒂芬Mallette)

2)BatchGraph代碼(丹尼爾Kuppitz)

Prerequisties:

echo "alice,32"   > /tmp/vertices.csv 
echo "bob,33"   >> /tmp/vertices.csv 
echo "alice,knows,bob" > /tmp/edges.csv 

在Gremlin REPL:

config = new BaseConfiguration() 
config.setProperty("storage.backend", "inmemory") 

g = TitanFactory.open(config) 
bg = new BatchGraph(g, VertexIDType.STRING, 1000) 

new File("/tmp/vertices.csv").each({ line -> 
    (username, age) = line.split(",") 
    user = bg.addVertex("user::" + username) 
    ElementHelper.setProperties(user, ["username":username,"age":age.toInteger()]) 
}) 

new File("/tmp/edges.csv").each({ line -> 
    (source, label, target) = line.split(",") 

    v1 = bg.getVertex("user::" + source) 
    v2 = bg.getVertex("user::" + target) 

    bg.addEdge(null, v1, v2, label) 
}) 

bg.commit() 
+1

GremlinDocs也有一個簡單的例子來讀取文件。它很容易適應'BatchGraph':http://gremlindocs.com/#recipes/reading-from-a-file –

+0

'BatchGraph'已被棄用,支持'BulkLoaderVertexProgram' – vinaykola