大型键值存储的横向扩展比文档数据库更好?

时间:2013-10-20 07:32:41

标签: nosql scalability key-value-store document-database distributed-database

在此演示文稿中,随着数据变大,有一个图表显示了以下水平可伸缩性上限:

  

键值&gt;列系列&gt; <文档数据库>图数据库

http://youtu.be/UodTzseLh04?t=13m36s

换句话说,随着数据越来越多(即复杂),您可以让数据库增长的限制越来越低。

与键值存储相比,为什么数据大小不像文档数据库那样可扩展?我是否回答了我自己的问题,他说“连接数据的自由度越大,分区数据越难”?

“我正在尝试做的事情”部分,每个人通常都会问:我有一个数据库,其模式很像树状,但偶尔会有2个父节点。我在我的原型中使用了Neo4j但对于生产规模的应用程序,我需要更多地考虑分区。我将不得不使用Mongo DB,因为Graph Databases不能轻易分区,并且为我的“多父母”关系编写代码会更难在Mongo DB。所以我想知道是否值得花更多的钱并使用键值存储 - 或者至少是一个列系列商店

1 个答案:

答案 0 :(得分:2)

对于图形数据库......我会考虑看看Titan的可扩展性。 https://github.com/thinkaurelius/titan

他们最近写了一篇关于他们的数据库引擎如何存储扩展/性能数据的好文章:http://thinkaurelius.com/2013/11/01/a-letter-regarding-native-graph-databases/

Titan也可以配置为与Cassandra携手合作,因此您也可以获得柱状数据库的好处。

我认为你通过理解关系(一个与另一个实体相关的实体)和可扩展性来达到目标​​。

您必须管理的“联接”或“联系”越多,扩展的难度就越大。

键/值系统假设您将关联应用程序中的数据。没有查询的概念,因此为了扩展,您可以根据键进行分片。非常简单且可扩展。

如果您阅读了一些关于Titan的文章,很容易理解为什么很难扩展图形数据库之类的东西。