我对NoSQL还比较陌生,但我已经对关系数据库做了相当多的尝试。
我们正在评估Cassandra,以便在我们的数据模型可能需要相当积极地发展的环境中使用。我看到它写了多个地方卡桑德拉可以存储“结构化,半结构化和非结构化”数据。
我理解结构化的主张。很明显:表定义了列。
我想我理解半结构化的说法。行不需要填充所有列。
但我不清楚非结构化的说法。当然,您可以将所有内容存储为键值blob,但是您无法通过值(有效)进行搜索。
我没有在网络上找到任何描述使用Cassandra非结构化数据的最佳实践的资源。理想情况下,对于我们的应用程序来说,半结构化数据就足够了;但是,如果它能够为我们增加价值的话,我想了解非结构化的声明。
谢谢。
发布于 2014-07-19 22:35:00
卡桑德拉最多只能搜索半结构化数据。这也是通过使用聚类键和辅助索引实现的。聚类键是搜索半结构化数据的有效方法。
在没有指定分区键的情况下搜索辅助索引数据是无效的。有几个解决方案,帮助这里,即DSE搜索(Solr与卡桑德尔)和星门。如果其中一列是非结构化文本,这两种解决方案都可能有所帮助。
否则,使用Cassandra进行非结构化数据并不是一个好主意,因为没有键就无法搜索。
发布于 2014-07-23 21:04:07
非结构化意味着您有一个没有架构的列族。每一行都有(很明显)一个行键。但是每一行的其余部分都可以包含任意的键/值对,甚至连数据类型也不需要在行之间匹配。
但正如trulite正确指出的那样,使用无模式的数据模型通常是个坏主意。看看http://planetcassandra.org/blog/post/the-myth-of-schema-less/
https://stackoverflow.com/questions/24806170
复制相似问题