Cassandra超级柱结构

时间:2012-09-18 06:01:42

标签: cassandra super-columns

我是Cassandra的新手,我对超级专栏并不熟悉。

考虑这种情况:假设我们有一些客户实体的字段,如

  • 名称
  • Contact_no
  • 地址

我们可以将所有这些值存储在普通列中。我想安排当一个人从一个位置移动到另一个位置(代表字段可以存储经度和纬度)时,该值将相对于客户位置连续存储。我认为我们可以用超级列来做到这一点,但我很困惑如何设计模式来实现这一目标。

请帮我创建这个架构,并了解超级列背后的概念。

1 个答案:

答案 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。

后, 迪安