【问题标题】:Cassandra super column structureCassandra 超柱结构
【发布时间】:2012-09-18 06:01:41
【问题描述】:

我是 Cassandra 的新手,对超级列不熟悉。

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

  • 姓名
  • Contact_no
  • 地址

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

请帮助我创建此架构并了解超级列背后的概念。

【问题讨论】:

    标签: cassandra super-columns


    【解决方案1】:

    现在真的不推荐使用超级列了……仍在使用,但越来越多的人改用复合列。例如 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 的所有列名

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

    后来, 院长

    【讨论】:

      猜你喜欢
      • 2013-06-02
      • 2016-08-24
      • 2019-11-25
      • 1970-01-01
      • 1970-01-01
      • 2013-11-28
      • 1970-01-01
      • 2013-07-09
      • 2015-04-30
      相关资源
      最近更新 更多