【问题标题】:Is it possible to connect to an existing relational database (Postgresql) using Neo4j?是否可以使用 Neo4j 连接到现有的关系数据库(Postgresql)?
【发布时间】:2014-11-10 14:57:54
【问题描述】:
如前几篇文章所述,我有一个大约 10M 行的 Postgresql 关系数据库。如果可能的话,我想将 Neo4J 直接连接到这个现有的数据库,并将节点定义为特定的列。我已经尝试了不同的解决方案:首先我使用批处理导入器和我的数据库的 CSV 文件,然后我使用 Groovy 创建了一个灵活的脚本(再次使用 CSV 文件)。这些方法有效,但它们意味着创建一个 CSV 文件,这在我的情况下并不理想。是否可以使用 Neo4j 直接连接到我的数据库?谢谢
【问题讨论】:
标签:
database
neo4j
connect
relational
【解决方案1】:
要将 Neo4j 中的节点链接到关系数据库中的行,您通常会将行的主键存储到该节点上的属性中。从关系数据库链接到图形节点的另一种方法是为节点创建唯一标识符,将其存储为属性并在其上创建索引。将该标识符存储在关系数据库中。
在任何情况下,跨越数据库边界时都需要一些客户端逻辑。例如。您进行图形遍历,返回存储在节点属性中的主键。使用那些在您的关系数据库中运行该 pk 的选择。
Martin Fowler 的 Nosql destilled 有一章是关于多语言持久性的。
在 Neo4j 中,您可以编写可能充当集成点的非托管扩展。