何时选择Cassandra而不是SQL/语义存储解决方案?

3

我有30-40GB的数据和3台开发机器(Core Duo i4, 3GB)。这些数据是一组类似于图形结构的数据,我需要查询来遍历这些图形。是否有指南可以帮助我决定使用Cassandra还是传统解决方案,例如SQL或语义存储?我的当前计划是设置Cassandra并查看其工作原理,但在开始安装之前我想学习更多信息。


4
如果你使用图形结构,可以看看Neo4j或其他图形数据库:http://neo4j.org/ - Alois Cochard
1个回答

1

我不会使用Cassandra来处理任何类型的图形结构。大约6个月前,我曾考虑过类似的事情,也许自那时以来Cassandra已经有所改进,但我发现它基本上受到了限制,因为它只有行级索引。

对于基于图形的结构(假设是一行布局中的一个简单弧),您确实需要列索引,因为如果要遍历图形,则需要能够从特定节点A开始查找所有从该节点出发的弧(假设是有向图),然后您必须对整个数据集进行行扫描,因为没有内置功能可以说给我在特定列中具有A的行。

为了实现这一点,您必须有效地设计Cassandra的数据布局,以获得反向索引。这有些棘手,并且需要您预先知道要回答的查询类型-如果您设计不好,则稍后回答新类型的查询可能非常困难或不可能。这些幻灯片演示了这个想法,但我希望它能清楚地表明您实际上必须构建自己的索引。

对于可以分解为三元组的图形结构,请考虑使用RDF存储 - 对于更复杂的结构,则需要考虑完整的图形数据库。如果您真的想要使用NoSQL,您可能可以在文档数据库之上构建一些东西,因为它们往往具有更好的索引,但是您必须仔细考虑如何存储数据。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接