Cassandra 卡桑德拉超级柱结构

Cassandra 卡桑德拉超级柱结构,cassandra,super-columns,Cassandra,Super Columns,我是卡桑德拉的新手,对超级专栏不太熟悉 考虑这个场景:假设我们有一个客户实体的一些字段,比如 名字 联络电话 地址 我们可以将所有这些值存储在一个普通列中。我想安排,当一个人从一个位置移动到另一个位置(代表字段可以存储经度和纬度)时,值将根据客户位置连续存储。我认为我们可以用超级列来实现这一点,但我不知道如何设计模式来实现这一点 请帮助我创建此模式,并了解超级列背后的概念。超级列确实不再被推荐……仍在使用,但越来越多的人已切换到复合列。例如,playOrm使用这个概念进行索引。如果我索引一个

我是卡桑德拉的新手,对超级专栏不太熟悉

考虑这个场景:假设我们有一个客户实体的一些字段,比如

  • 名字
  • 联络电话
  • 地址
我们可以将所有这些值存储在一个普通列中。我想安排,当一个人从一个位置移动到另一个位置(代表字段可以存储经度和纬度)时,值将根据客户位置连续存储。我认为我们可以用超级列来实现这一点,但我不知道如何设计模式来实现这一点


请帮助我创建此模式,并了解超级列背后的概念。

超级列确实不再被推荐……仍在使用,但越来越多的人已切换到复合列。例如,playOrm使用这个概念进行索引。如果我索引一个整数,索引行可能如下所示

rowkey =  10.pk56 10.pk39 11.pk50
其中,在本例中,列名类型是复合整数和字符串。这些行最多可以有1000万列,尽管我自己只运行了最多100万列的expirements。例如,playOrm的查询使用这些类型的索引来执行一个在1000000行上耗时60毫秒的查询

使用playOrm,您可以在noSQL中创建可伸缩的关系模型……您只需要弄清楚如何正确地对数据进行分区,因为每个表中可以有任意多个分区,但一个分区实际上不应该超过1000万行

不过,回到示例,如果您有一个包含numShares、price、username、age列的表,那么您可以创建numShares索引,上面的行就是该索引,这样您就可以按键获取索引,或者更好地,获取numShares>20和numShares<50的所有列名

一旦有了这些列,就可以得到列名的后半部分,这是主键。主键不是值的原因是,正如上面的示例中一样,有两行pk56和pk39具有相同的10,并且不能有两个名为10的列,但可以有一个10.pk56和10.pk39

后来,,
Dean

超级色谱柱确实不再被推荐……仍然在使用,但越来越多的色谱柱已转向复合色谱柱。例如,playOrm使用这个概念进行索引。如果我索引一个整数,索引行可能如下所示

rowkey =  10.pk56 10.pk39 11.pk50
其中,在本例中,列名类型是复合整数和字符串。这些行最多可以有1000万列,尽管我自己只运行了最多100万列的expirements。例如,playOrm的查询使用这些类型的索引来执行一个在1000000行上耗时60毫秒的查询

使用playOrm,您可以在noSQL中创建可伸缩的关系模型……您只需要弄清楚如何正确地对数据进行分区,因为每个表中可以有任意多个分区,但一个分区实际上不应该超过1000万行

不过,回到示例,如果您有一个包含numShares、price、username、age列的表,那么您可以创建numShares索引,上面的行就是该索引,这样您就可以按键获取索引,或者更好地,获取numShares>20和numShares<50的所有列名

一旦有了这些列,就可以得到列名的后半部分,这是主键。主键不是值的原因是,正如上面的示例中一样,有两行pk56和pk39具有相同的10,并且不能有两个名为10的列,但可以有一个10.pk56和10.pk39

后来,, 院长