使用CSV填充Neo4j

时间:2012-10-25 07:18:37

标签: neo4j

我是Neo4j的新手。我是这个图数据库的学习者。我需要将一个csv文件加载到Neo4j数据库中。我试着从2天开始,我无法找到读取neo4j中的csv文件的好信息。请建议我将示例代码或博客阅读csv文件到Neo4j。

实施例: 假设我有一个csv文件这样我们如何将它读入Neo4j

id  name    language
1   Victor Richards West Frisian
2   Virginia Shaw   Korean
3   Lois Simpson    Belarusian
4   Randy Bishop    Hiri Motu
5   Lori Mendoza    Tok Pisin

5 个答案:

答案 0 :(得分:4)

您可以尝试https://github.com/sroycode/neo4j-import

这直接从一对CSV文件填充数据(条目必须以COMMA分隔)

构建:(你需要maven)

sh build.sh

节点文件具有必填字段ID和您喜欢的任何其他字段

NODES.txt
id,name,language
1,Victor Richards,West Frisian
2,Virginia Shaw,Korean
3,Lois Simpson,Belarusian

关系文件有3个必填字段,from,to,type。假设您有一个字段年龄(长整数)和info,则关系文件将类似于

RELNS.txt
from,to,type,age@long,info
1,2,KNOWS,10,known each other from school
1,3,CLUBMATES,5,member of country club

运行:

sh run.sh graph.db NODES.txt RELNS.txt

将在当前文件夹中创建graph.db,您可以将其复制到neo4j数据文件夹。

注意: 如果您使用的是neo4j晚于1.6。*,请在conf / neo4j.properties中添加此行

allow_store_upgrade = true

玩得开心。

答案 1 :(得分:3)

请查看https://github.com/jexp/batch-import

可以作为起点

答案 2 :(得分:2)

没有什么可用于将CSV数据一般性地加载到Neo4j中,因为源数据结构和目标数据结构不同:CSV数据是表格式而Neo4j包含图形数据。

为了实现这样的导入,您需要添加一个单独的步骤,将表格数据转换为某种形式的图形(例如树),然后才能将其加载到Neo4j中。以树结构为例,下面的页面显示了如何将XML数据转换为Cypher,然后可以直接针对Neo4j实例执行。

http://geoff.nigelsmall.net/xml2graph/

如果有用,请随意使用此工具(请记住它只能处理小文件),但这当然要求您先将CSV转换为XML。

干杯

答案 3 :(得分:1)

neo4j可能没有已知的CSV导入程序,您必须自行导入:

我通常是通过gremlin的g.loadGraphML()自己做的;功能。 http://docs.neo4j.org/chunked/snapshot/gremlin-plugin.html#rest-api-load-a-sample-graph

我用一些外部脚本将我的数据解析为xml语法并加载特定的xml文件。你可以在这里查看语法: https://raw.github.com/tinkerpop/gremlin/master/data/graph-example-1.xml 解析100mb文件只需几分钟。

在你的情况下你需要做的是一个简单的二分图,顶点由用户和语言组成,边缘是“说话”。如果您了解某些编程,则使用参数 id 名称 |创建用户节点具有参数名称 |的唯一语言节点 关系您需要使用特定语言连接每个用户的位置。请注意,用户可以是重复的,而语言则不能。

答案 4 :(得分:0)

我相信你的问题过于笼统。你的csv文件包含什么? csv文件内容的逻辑含义可能会有很大差异。带有ID的两列示例,它们表示彼此连接的实体。

3921  584
831   9891
3841  92
...

在这种情况下,您可以编写一个BatchInserter代码片段,以便更快地导入它,请参阅http://docs.neo4j.org/chunked/milestone/batchinsert.html

或者您可以使用常规GraphDatabaseService导入事务大小为几千个插入的性能。了解如何在http://docs.neo4j.org/chunked/milestone/tutorials-java-embedded.html设置和使用图表数据库。