我是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
答案 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设置和使用图表数据库。