【问题标题】:Using both graph db and document db同时使用图形数据库和文档数据库
【发布时间】:2012-08-24 18:06:42
【问题描述】:

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

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

【问题讨论】:

    标签: couchdb neo4j graph-databases document-database 2phase-commit


    【解决方案1】:

    您可以查看“Seven DBs in Seven Weeks”一书。第 8 章讨论通过 CouchDB、Neo4j 和 Redis 构建多语言结构。

    【讨论】:

      【解决方案2】:

      跑,

      由于 CouchDB 和大多数(全部?)文档/ kv 存储不支持事务,您需要停止担心 2-phase-commits。例如,您可以在 Neo4j 和 MySQL 之间进行 XA 事务,但不能在 CouchDB 或其亲属之间进行。

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

      【讨论】:

      • 如果您有一些非常大的上下文(例如,也为每个节点构建具有其内容的网站图),我认为使用文档数据库的双重设置是合理的。
      • 除非内容是视频和图像块,否则将其全部保存在图表中是没有问题的。
      • @Andreas - 啊 - 但我确实有斑点。但更重要的是 - 我在每个节点上都有很多非结构化属性 - 我想在实体上运行报告和批处理。图形数据库会大大减慢我的速度,并且会施加我不想处理的容量限制。
      • @Ran 我明白了。同意重要的是您想对数据提出的问题。您可以使用 Spring Data 之类的方法查看跨存储持久性,以将正确的位保存到正确的存储桶中。
      • arangodb (github.com/triAGENS/ArangoDB) 似乎结合了文档和图形数据库功能
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      • 2014-01-02
      • 1970-01-01
      • 2014-09-16
      • 2014-01-16
      相关资源
      最近更新 更多