我是Cassandra的新手,我对超级专栏并不熟悉。
考虑这种情况:假设我们有一些客户实体的字段,如
我们可以将所有这些值存储在普通列中。我想安排当一个人从一个位置移动到另一个位置(代表字段可以存储经度和纬度)时,该值将相对于客户位置连续存储。我认为我们可以用超级列来做到这一点,但我很困惑如何设计模式来实现这一目标。
请帮我创建这个架构,并了解超级列背后的概念。
答案 0 :(得分:0)
超级列实际上不再推荐了......仍然使用但是越来越多的人已经切换到复合列。例如,playOrm使用此概念进行索引。如果我索引一个整数,索引行可能看起来像这样
rowkey = 10.pk56 10.pk39 11.pk50
在这种情况下,列名类型是复合整数和字符串。这些行可以达到大约1000万列,但我只运行了多达100万的自我。例如,playOrm的查询使用这些类型的索引来执行在1,000,000行上花费60毫秒的查询。
使用playOrm,您可以在noSQL中执行可伸缩的关系模型....您只需要弄清楚如何正确地对数据进行分区,因为您可以在每个表中拥有所需数量的分区,但是分区应该不是超过1000万行。
回到这个例子,如果你有一个包含numShares,price,username,age的列的表,你可能会对numShares进行索引,而上面的行就是那个索引,所以你可以按键或者更好地获取索引,使用numShares>获取所有列名称20和numShares< 50
获得这些列之后,您就可以获得作为主键的列名的后半部分。主键不是值的原因是因为在上面的示例中有两行pk56和pk39具有相同的10,并且您不能有两列名为10,但您可以拥有10.pk56和10.pk39。
后, 迪安