我对NoSQL相对较新,但是我已经对关系数据库做了相当多的玩弄。

我们正在评估Cassandra,以便在我们的数据模型可能需要相当积极地发展的环境中使用。我已经看过它在Cassandra可以存储“结构化,半结构化和非结构化”数据的多个位置。

我了解结构性声明。显而易见:一个表具有定义的列。

我认为我了解半结构性声明。行不需要填充所有列。

但是我不清楚非结构化的要求。当然,您可以将所有内容存储为键值blob,但无法(有效地)按值搜索。

我在网上找不到任何描述Cassandra使用非结构化数据的最佳实践的资源。理想情况下,对于我们的应用程序而言,半结构化数据就足够了;但我想了解这种非结构化的主张,因为它可以为我们增加值(value)。

谢谢。

最佳答案

Cassandra最多可以搜索半结构化数据。也可以通过使用聚簇键和二级索引来实现。集群键绝对是搜索半结构化数据的有效方法。

在不指定分区键的情况下搜索二级索引数据效率不高。这里有一些有助于解决问题的解决方案,例如DSE Search(Solr和Cassandr)和Stargate。如果列之一是非结构化文本,这两种解决方案也可能会有所帮助。

否则,用Cassandra进行非结构化数据不是一个好主意,因为没有键就无法搜索。

关于Cassandra和非结构化数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24806170/

10-11 02:52
查看更多