7

我们正在设计一个网络站点,数据将以复杂的方式相互连接。我们计划使用 Neo4j,这样我们就可以避免昂贵的连接,否则需要。由于 neo4j 是专门为类似图形的数据设计的,所以它看起来很合适。

然而我们已经意识到虽然 neo4j 在某些方面速度很快,但是关系数据的表示最好通过关系数据库来完成。因此,我们计划在某些功能上使用 neo4j,在其他功能上使用 postgresql。

例如——我们将使用 neo4j 通过搜索用户关注的不同节点来查找用户的相关提要。而对于更新个人资料信息等其他活动,我们希望使用 postgresql。我们对配置文件信息更新做了一些性能测试,发现 postgresql 比 neo4j 快。在分析提要数据时,neo4j 的速度要快得多。

现在我的问题是以前有没有人使用过这样的数据库组合。特别是带有 postgresql 的 neo4j。我们在集成不同的数据库时确实发现了一些问题,但我们认为这是值得的。

请分享您的经验和反馈。谢谢

4

1 回答 1

5

由于 Neo4j 是一个图形数据库,而 PostgreSQL 是一个关系数据库,因此您正朝着正确的方向前进。由于在特定应用领域的优势,已经开发了许多使用 NoSQL 数据库(包括 Neo4j)的应用程序。我工作过的其他地方使用 PostgreSQL 或 Oracle 存储关系数据,使用 Lucene/Solr 存储文本数据,使用 MongoDB 存储文档。

您需要根据数据类型明确区分每种类型的数据库的职责。

如果您将数据从其中一个复制到另一个(例如 Neo4j 数据被复制到 PostgreSQL 以用于报告目的),请确保您有适当的数据过期策略或以可靠且可靠的方式更新该数据可预测的时尚。

最后,您可能需要也可能不想要某种跨数据库的“事务”概念,因为如果一个事务包含两部分数据,一个存储在 Neo4J 中,另一个存储在 PostgreSQL 中,系统会保证如果您能找到它在 PostgreSQL 中,您必须能够在 Neo4J 中找到另一部分,反之亦然。

于 2013-11-14T21:13:18.717 回答