如何将sql数据库[sakila]加载到Neo4j中?

时间:2014-11-14 13:57:04

标签: mysql database neo4j

我有一个在Neo4J中编写查询的任务,但提供的数据库是SAKILA.SQL。

如何将其加载到Neo4j中?

我试图找到答案,但没有运气!

2 个答案:

答案 0 :(得分:1)

也许你可以分享你的sql?

最简单的方法是将其插入关系数据库,将表内容转储为CSV并使用LOAD CSV将数据导入Neo4j。请参阅:http://neo4j.com/developer/guide-importing-data-and-etl/

请参阅:http://neo4j.com/docs/stable/query-load-csv.html

有关Cypher的详细信息,请参阅:http://neo4j.com/developer/cypher/

答案 1 :(得分:1)

所以你需要先导入(即运行所有这些插入语句)到MySQL中,然后导出到Neo4j可以使用的CSV文件中。

在Michael发布的示例中,我们使用PostgresSQL的'COPY'命令导出CSV文件。在MySQL中,您的命令略有不同,如over here所述。

你有类似的东西:

SELECT * from customer
INTO OUTFILE '/tmp/customers.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'

然后在Neo4j中你会有这样的查询:

LOAD CSV WITH HEADERS FROM 'file:/tmp/customers.csv' AS line
MERGE (c:Customer {id: c.id})
ON CREATE SET c.name = line.name

等等。

然后,您可以执行类似的操作来提取其他表,并使用MERGE命令在不同节点之间创建适当的关系。

如果您共享所有MySQL导入脚本,我们可以向您展示如何进行更完整的翻译。