是否可以创建包含普通列和超级列的列家族?

时间:2012-04-21 07:06:05

标签: database-design cassandra hector

我正在寻找一个列系列,我可以在其中添加超级列和普通列,如下例所示

keyspace1{
      :rowid1 AND its associated column field
      :rowid2 with a Super Column 
}

有可能吗?如果是,请提示 在此先感谢

3 个答案:

答案 0 :(得分:4)

我知道我没有直接回答你的问题,但我认为你应该重新考虑在你的数据模型中使用SuperColumns。

我引用DataStax最近发布的article(2012年2月15日):

  

SuperColumns是提供上述相同类型的非规范化工具的早期尝试。它们具有重要的局限性(例如,从SuperColumn中读取任何子列将整个SuperColumn拉入内存中),最终将被具有相同API的复合列实现取代。因此,如果你有一个使用SuperColumns的应用程序,你不需要重写任何东西,但如果你刚刚开始,你应该使用上面描述的更灵活的方法。

我觉得你值得一看,here可能是一个不错的起点。

答案 1 :(得分:1)

问题的答案是不可能的。您不能在单个列族中混合标准列和超级列。如果你避免使用超级列会更好,因为它会随着时间的推移而被弃用。

但是我最近看到一篇关于Cassandra用户组的文章,确定了超级列族的一些优点。

答案 2 :(得分:0)

不,您不能在同一列系列中混合使用标准列和超级列。创建列族时,必须指定它是标准列族还是超列族。但是,您可以通过使用复合列(建议使用超级列)来实现相同的效果。