Cassandra 如何对静态列族进行排序
Posted
技术标签:
【中文标题】Cassandra 如何对静态列族进行排序【英文标题】:How is Cassandra sorting static column families 【发布时间】:2014-11-04 16:27:45 【问题描述】:据我所知,比较器是在列族级别指定的。到目前为止,我已经将它与动态列(宽行)一起使用。当您使用 CQL 创建静态列族时,Cassandra 使用哪种类型的比较器?
CREATE TABLE songs (
id uuid PRIMARY KEY,
title text,
album text,
artist text,
data blob
);
如果您将复合键放入组合中会发生什么。
CREATE TABLE songs (
id uuid,
title text,
album text,
artist text,
data blob,
PRIMARY KEY ((id, title), album)
);
【问题讨论】:
【参考方案1】:http://cassandra.apache.org/doc/cql3/CQL.html#createTablepartitionClustering
http://www.datastax.com/documentation/cql/3.1/cql/ddl/ddl_compound_keys_c.html
在给定的物理节点上,给定分区键的行按集群列的顺序存储。
所以在第二种情况下,您的分区键是(id, title)
,集群键是album
,这意味着给定分区键的所有行都将按album
排序存储
【讨论】:
好的,但是如果您没有在列族上指定比较器,那么非主键列是如何排序的。排序对于能够进行切片很重要。但我认为它只是使用org.apache.cassandra.db.marshal.UTF8Type
是的,它们是按列名排序的以上是关于Cassandra 如何对静态列族进行排序的主要内容,如果未能解决你的问题,请参考以下文章
使用 MapReduce 作业高效处理 Cassandra 列族中的所有数据