代码之家  ›  专栏  ›  技术社区  ›  Saurabh Kumar

Cassandra中的复杂列设计和Hector查询

  •  0
  • Saurabh Kumar  · 技术社区  · 11 年前

    我有如下设计要求

    Row      Column          Column     
     A  |      B        |      E      |
    
           SubColumn         SubColumn
           C        D       F        G
           1        2       3        4
    

    我不知道这种结构是否可行。我也想知道如何使用Hector客户端查询这样的表。如果我能阅读一些使用Hector插入、删除和更新的例子,那就太好了。

    1 回复  |  直到 11 年前
        1
  •  0
  •   Saurabh Kumar    11 年前

    在具有突变体的超级柱上插入一个柱与我们已经看到的非常相似。唯一的区别是,我们现在正在创建一个HSuperColumn来代替HColumn,以提供一些额外的结构。例如,如果我们想将用户存储在“计费”部门下,我们将使用以下对Mutator的调用:

     Mutator<String> mutator =
     HFactory.createMutator(keyspace, stringSerializer);
     mutator.insert("billing", "Super1", HFactory.createSuperColumn("jsmith",
     Arrays.asList(HFactory.createStringColumn("first", "John")),
     stringSerializer, stringSerializer, stringSerializer));
    

    至于SuperColumn的检索,简单的情况几乎与标准Column的搜索相同。唯一的区别是使用了Query实现。

     SuperColumnQuery<String, String, String, String> superColumnQuery =
     HFactory.createSuperColumnQuery(keyspace, stringSerializer,
     stringSerializer, stringSerializer, stringSerializer);
     superColumnQuery.setColumnFamily("Super1")
     .setKey("billing").setSuperName("jsmith");
      Result<HSuperColumn<String, String, String>> result = superColumnQuery.execute();