作为我的毕业论文的一部分,我必须将一个关系型数据库转换成面向图的数据库,具体来说是将PostgreSQL数据库转换成Neo4j嵌入式数据库。现在问题是如何实现这个转换。在Rik Van Bruggen的书《学习Neo4j》中,他提到了使用Trascend和MuleSoft工具进行ETL活动的数据导入过程,但在官方网站上,没有关于如何实现的文档,也没有帮助文档或示例。除了这些工具,我还有什么其他方法可以在不使用自己的代码的情况下转换这些信息?
一些建模建议:
一个规范化的关系模型,由于性能原因尚未去规范化,可以转换为等效的图形模型。图形模型的形状大多受用例驱动,因此后期将有机会进行优化和模型演进。
一个良好的、规范化的实体关系图通常已经代表了一个不错的图形模型。因此,如果您仍然有原始ER图可用,请尝试将其作为指南。
以下是一些转换提示:
在开始导入数据之前了解图形模型非常重要,然后只需要填充该模型即可。
LOAD CSV
可能是您的最佳选择,但这当然意味着首先要输出CSV。以下是一些很棒的资源:http://neo4j.com/docs/stable/query-load-csv.html, http://watch.neo4j.org/video/112447027, http://jexp.de/blog/2014/06/load-csv-into-neo4j-quickly-and-successfully/, http://jexp.de/blog/2014/10/load-cvs-with-success/, http://www.markhneedham.com/blog/2014/10/23/neo4j-cypher-avoiding-the-eager/. 我还写了一个Ruby gem,可以从各种来源导入数据。 它叫做neo4apis。 您可以查看neo4apis-twitter gem以了解其工作原理:https://github.com/neo4jrb/neo4apis-twitter/,https://github.com/neo4jrb/neo4apis-twitter/blob/master/lib/neo4apis/twitter.rb。 我实际上一直想实现一个 neo4apis-activerecord,以便轻松从SQL中导入数据。