【发布时间】:2014-11-14 13:57:04
【问题描述】:
我的任务是在 Neo4J 中编写查询,但提供的数据库是 SAKILA.SQL。
如何将其加载到 Neo4j 中?
我试图为此找到答案,但没有运气!
【问题讨论】:
我的任务是在 Neo4J 中编写查询,但提供的数据库是 SAKILA.SQL。
如何将其加载到 Neo4j 中?
我试图为此找到答案,但没有运气!
【问题讨论】:
也许你可以分享你的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/
【讨论】:
因此,您需要先将(即运行所有这些插入语句)导入 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 导入脚本,我们可以向您展示如何进行更完整的翻译。
【讨论】: