同时使用图数据库和文档数据库

Ran*_*ron 5 couchdb 2phase-commit neo4j graph-databases document-database

我正在考虑一种设置,在该设置中,实体存储在文档数据库(例如CouchDB)和图形数据库(例如Neo4j)中。基本原理是将每个实体信息(数据,blob,值,复杂的内部结构)存储在文档db中,而将实体关系(父,子,关联实体)存储在图db中。

有没有人做过/看到过/被这样的装置咬过?我应该期待什么样的问题?首先想到的是两阶段提交。但是备份在这里也有问题。

小智 0

冉,

由于 CouchDB 和大多数(全部?)文档/kv 存储不支持事务,因此您无需再担心两阶段提交。例如,您可以在 Neo4j 和 MySQL 之间执行 XA 事务,但不能在 CouchDB 或其亲属之间执行 XA 事务。

事实上,为了简单起见,为什么不采用纯图数据库架构呢?您可以获得更好的表现力和交易 - 以第二种商店类型的形式添加另一个移动部分的理由是什么?

  • 如果您为每个节点都有一些非常大的上下文(例如,也构建网站及其内容的图表),我认为使用文档数据库进行双重设置是合理的。 (3认同)
  • @Andreas - 啊 - 但我确实有斑点。但更重要的是 - 我在每个节点上都有很多很多非结构化属性 - 我想在实体上运行报告和批处理。图形数据库会大大减慢我的速度,并且会施加我不想处理的容量限制。 (3认同)