2013-12-17 48 views
1

我試圖使用batch-import將SQLite3數據庫導入到Neo4J中。作爲Neo4J noob,我跟隨了Max De Marzi的帖子:Batch Importer – Part 2無法通過批量導入導入Neo4J

我得到這個錯誤:

# java -server -Xmx2G -jar /opt/batch-import/target/batch-import-jar-with-dependencies.jar /var/lib/neo4j/data/graph.db nodes.csv relations.csv 
Usage: Importer data/dir nodes.csv relationships.csv [node_index node-index-name fulltext|exact nodes_index.csv rel_index rel-index-name fulltext|exact rels_index.csv ....] 
Using: Importer /var/lib/neo4j/data/graph.db nodes.csv relations.csv 

Using Existing Configuration File 
.. 
Importing 271544 Nodes took 2 seconds 

Total import time: 4 seconds 
Exception in thread "main" org.neo4j.graphdb.NotFoundException: id=271565 
    at org.neo4j.unsafe.batchinsert.BatchInserterImpl.getNodeRecord(BatchInserterImpl.java:917) 
    at org.neo4j.unsafe.batchinsert.BatchInserterImpl.createRelationship(BatchInserterImpl.java:471) 
    at org.neo4j.batchimport.Importer.importRelationships(Importer.java:136) 
    at org.neo4j.batchimport.Importer.doImport(Importer.java:214) 
    at org.neo4j.batchimport.Importer.main(Importer.java:78) 

但節點存在:

$ grep ^271565 nodes.csv 
271565 'la Callas' 'n_term' 0.0 

任何人都有這個問題? 謝謝。

回答

1

你能證明你的文件頭?

正如你所看到的,你只能導入271544節點。所以沒有辦法使用node-id 271565

關係文件中的id是指node-file中的行號而不是您自己的「id」列中的行號(它怎麼可能知道)。

你可以在這裏做的唯一的事情就是使用id:id這是一種特殊的類型,並會強制neo4j-id與你提供的id相對應。並且在關係文件中使用start:id,end:id

1

您可以嘗試另一種方法將批量數據導入neo4j。

首先將您的數據庫轉換爲CSV文件並將其導入到Gephi中 - 一種圖形可視化工具。然後,通過使用Gephi插件來支持neo4j數據庫,您應該能夠將數據庫(從Gephi)導出爲neo4j格式。

最後只需將導出的文件複製到適當的neo4j目錄中即可。

要將數據庫導入Gephi,您需要兩個csv文件 - 一個包含所有節點,另一個包含所有關係。按照本教程:http://blog.neo4j.org/2013/01/fun-with-beer-and-graphs.html

從這裏獲取Gephi:https://gephi.org/

從這裏獲取插件:https://marketplace.gephi.org/plugin/neo4j-graph-database-support/

希望這有助於。