问题将天堂论文数据集导入Neo4j

时间:2018-02-23 13:53:44

标签: neo4j

Hej all,

我遇到了将Paradise Papers dataset导入Neo4j(3.3.2)数据库的问题。

neo4j-admin import报告似乎正确地将数据导入数据库。

...
IMPORT DONE in 1m 4s 889ms.
Imported:
  867931 nodes
  1657838 relationships
  17838925 properties
Peak memory usage: 488.28 MB
...

但是,在导入数据后,数据库似乎是空的,正如Cypher查询MATCH (n) RETURN count(n);CALL apoc.meta.graph();

所报告的那样
...
count(n)
0
nodes, relationships
[], []
...

以下链接指向一个脚本,该脚本应该重现我的问题。它是OS X / BSD的Bash脚本(我认为-E的{​​{1}}开关在Linux上不存在)。此外,该脚本还需要在系统上安装和运行Docker。

https://github.com/HelgeCPH/cypher_kernel/blob/master/example/import_data.sh

快速运行脚本:

sed

我看不出我做错了什么。运行wget https://raw.githubusercontent.com/HelgeCPH/cypher_kernel/master/example/import_data.sh chmod u+x import_data.sh ./import_data.sh 时,是否必须明确指向数据库?

检查容器时,数据库文件存在(cypher-shell),其时间戳与导入数据的时间相对应。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您的脚本有多处错误:

  • 未加载节点,因为在CSV中未设置:ID列。这就是我添加这部分的原因:

    导入中的文件

    / csv_paradise_papers / .nodes。 .csv 做   sed -i -E' 1s / node_id / node_id:ID /' $文件 完成

  • 节点的标签也未设置。可以直接在命令行中设置它们,如下所示:--nodes:MyLabel

  • 如果在服务器重新启动时对Neo4j进行查询,则可能会收到错误,因为服务器尚未就绪。这就是为什么我最后添加sleep 5的原因。 一个更好的方法是等到你从服务器得到这样的响应:

    直到$(curl --output / dev / null --silent --head --fail http://localhost:7474);做     printf'。'     睡觉1 完成

  • 最后一点,我不知道为什么,但如果你在容器内重新启动neo4j,你将看不到导入的数据。但是如果你重新启动容器本身就可以......