什么导致cassandra广泛?

时间:2014-08-01 21:33:37

标签: cassandra-2.0

我从post找到了以下内容:

create table posts(username varchar, time timeuuid, post_text varchar, primary key(username, time))

主键中只有第一个元素的变体只有很多CF行。如果此元素的基数非常低,则可能会出现问题,因为最终可能会出现非常宽的CF行。

我的观点是:

我上面加粗的,不应该是主键中的第二个元素。 也就是说,次要元素或聚类元素会导致宽行正确吗?

1 个答案:

答案 0 :(得分:1)

这是定义和字典的问题。 宽行和行不是一回事 - 给出一个定义,我会说在一个带有PK(分区,聚类)的表中,会有多少宽行作为数量分区键。 的数量由每个分区的所有聚类键的总和给出。

所以在你引用的句子中,作者写了“行”,但他的意思是“宽行”。

  

只有很多CF 宽行 ,因为   主键中的第一个元素。如果这样,这可能是个问题   元素具有非常低的基数,因为你最终可以得到非常 CF   行。

可能在撰写本文时,宽行一词并未如此使用。 所以给出了这样一张表

CREATE TABLE wide_rows (
  partitionkey text,
  clusteringkey text,
  data text,
  PRIMARY KEY ((partitionkey), clusteringkey)
)

只有partitionkey宽行,但行号取决于分区和群集

insert into wide_rows(partitionkey, clusteringkey, data) VALUES ( 'eagertoLearn', 'stackoverflow', 'cassandra question');
insert into wide_rows(partitionkey, clusteringkey, data) VALUES ( 'eagertoLearn', 'google groups', 'cql question');
insert into wide_rows(partitionkey, clusteringkey, data) VALUES ( 'eagertoLearn', 'askubuntu', 'linux shell question');
select * from wide_rows where partitionkey = 'eagertoLearn';

 partitionkey | clusteringkey | data
--------------+---------------+----------------------
 eagertoLearn |     askubuntu | linux shell question
 eagertoLearn | google groups |         cql question
 eagertoLearn | stackoverflow |   cassandra question

(3 rows)

CQL说我有3行,但是这3行属于同一个分区键,所以这是1行。

HTH, 卡罗