插入嵌套的超级列

时间:2012-03-30 11:32:54

标签: cassandra hector

如何使用Hector API在Cassandra中插入嵌套超级列(表示超级列中的超级列)。下面是简单超级列的代码,它工作正常。但是我也希望在这里添加一个超级列。

Mutator<String> mutator = HFactory.createMutator(keyspaceOperator, stringSerializer);
List<HColumn<String,String>> colsList = new ArrayList<HColumn<String,String>>();
colsList.add(HFactory.createStringColumn("name", "tarun"));
colsList.add(HFactory.createStringColumn("age", "25"));
mutator.insert("deviceId", CF_SUPER, HFactory.createSuperColumn("10000", 
               colsList,stringSerializer, stringSerializer, stringSerializer));

2 个答案:

答案 0 :(得分:3)

你不能把SuperColumn放在Cassandra的另一个SuperColumn中。这不是Hector的限制,这就是Cassandra的实现方式。

当我第一次开始使用Cassandra时,我读了几个小时的数据模型的文字描述,我的眼睛茫然,我没有得到它。然后我看到了一个图片表示并立即修改它。看看:http://www.javageneration.com/wp-content/uploads/2010/05/Cassandra_DataModel_CheatSheet.pdf

答案 1 :(得分:1)

您不能将超级列放在另一个超级列中。您需要使用包含超级列集合的SuperColumnFamily。请参阅其中一位在Digg设立Cassandra的人员撰写的this篇文章,以便对数据模型进行详细解释。