Collections 使用紧凑型存储的CQL3集合?

Collections 使用紧凑型存储的CQL3集合?,collections,cassandra,cql3,datastax,Collections,Cassandra,Cql3,Datastax,这个问题是关于税收条款的。在其“非紧凑表”子主题中,它说 不同之处在于,上面的定义将在内部使用具有单个UTF8Type组件的CompositeType比较器,而不是UTF8Type比较器。这可能看起来很浪费(从技术上讲,CompositeType的使用为每个内部单元增加了2字节的开销(因此使用紧凑/非紧凑术语)),但其原因是集合支持。在内部,集合需要使用CompositeType 我的问题是关于最后一行。它说集合需要CompositeType比较器。在上面引用的示例中,当我们使用compact

这个问题是关于税收条款的。在其“非紧凑表”子主题中,它说

不同之处在于,上面的定义将在内部使用具有单个UTF8Type组件的CompositeType比较器,而不是UTF8Type比较器。这可能看起来很浪费(从技术上讲,CompositeType的使用为每个内部单元增加了2字节的开销(因此使用紧凑/非紧凑术语)),但其原因是集合支持。在内部,集合需要使用CompositeType

我的问题是关于最后一行。它说集合需要CompositeType比较器。在上面引用的示例中,当我们使用compact storage时,它没有提供CompositeType比较器,而是提供UTF8Type比较器。所以集合不能与之一起使用。我明白了

但是,如果您有两个主键,那么即使使用紧凑型存储,也可以使用CompositeType comparator。那为什么我们不能在这种情况下收集呢

一个可能的原因是CompositeType comparator不是集合的唯一要求。如果是,其他要求是什么


谢谢。

它必须是非紧凑型存储创建的特定复合类型。这允许集合名称成为比较器组件之一。

谢谢您的回答。我仍然不知道为什么compact storage不能创建特定的复合类型。我找不到任何文章解释紧凑型存储和非紧凑型存储之间的区别。如果你能给我指一下这样一篇文章。这将解决我的困惑。谢谢