|
1
9
|
|
|
2
5
这取决于您使用的数据存储。 我经常使用appengine,它们的数据存储只允许在一列上存在不平等(并且该列必须是排序顺序中的第一个元素)。因此,您将无法运行发布的查询,但可以执行类似的查询:
此外,您还可以执行一些操作,例如使列包含字符串列表,并选择列表中具有值的行。 所以,官方的回答是“也许,索塔,有时,但不是真的,除非是的” |
|
|
3
1
我不是nosql专家,但正如名字所说,他们不需要依赖sql。您可能可以做任何您想要做的事情,但是需要编写map/reduce函数或其他非sql方式来查询数据。 也许这个博客能为你提供有用的信息: Query processing for NoSQL database |
|
|
4
0
在我看来,您可以在文档数据存储(如mongodb)中执行此操作,但在关键值数据存储(如cassandra)中不太容易。如果要在键值数据存储中执行此操作,则组合键必须标识所有查询的数据元素(列)。换句话说,一个实例必须拥有所有的查询列。这是可能的。在普通键值存储中,每个键有一个数据元素(列),但您可以这样做来支持许多数据元素。键值存储允许这样做,因为该值只是一个字符串值,可以包含您想要的内容。我建议每个键有多个数据元素(列),但您必须为此进行编程。相反,如果列位于不同的列实例中,则垂直搜索数据将非常缓慢,即使列是有序的。你问题中的样本只有一张表。如果在关系中有多个表,则在键值存储中,必须创建一个新的列族来存储连接的数据,并且每个键仍必须有多个数据元素。但是,它必须通过类似etl的过程在一个系列中的一个实例中水平预加载。换言之,在将数据加载到键值存储之前将其连接起来,并设计cassandra数据存储以将已组合的数据存储在具有多个值的列中。或者使用数据挖掘。我相信“大数据分析”目前正在解决关键价值商店的这个问题。另一个例子,不如你的复杂,是如何在关键价值商店,你能产生一个简单的报告销售收入和销量按客户按产品周? |