我想在不使用csv文件的情况下导入neo4j数据库,即如果我有mysql结果集,那么我只需将其转储到neo4j中,并将处理过的mysql数据库中的记录标记为已处理。
应该在内存中管理关系和索引,而不需要csv文件。
一种方法是使用弹簧模板的.save方法,但是一次只占一个实体,我有数百万条记录,这需要很长时间。
我可以使用任何API批量插入neo4j DB。
答案 0 :(得分:0)
查看neo4j-csv-firehose project。从自述文件:
neo4j-csv-firehose使Neo4j的LOAD CSV Cypher命令能够从其他数据源加载其他数据源。它提供了对csv的其他数据源的即时转换 - 因此可以作为
LOAD CSV
的输入。
您可以在mysql上指向csv-firehose,并将CSV格式的SQL语句(或表的内容)的结果流式传输到LOAD CSV
Cypher。这允许您使用性能LOAD CSV
Cypher进行导入,而无需处理从mysql导出数据到CSV的过程。
例如,要连接到mysql并将名为person
的表的内容导入Neo4j:
load csv with headers from "http://localhost:7474/csv/jdbc?url=jdbc%3Amysql%3A%2F%2Flocalhost%2Fmydb&table=person&user=mydb&password=123" as line create (:Person {firstname: line.firstName, lastname: line.lastName});
更多示例说明here.