我从这篇文章中发现了以下内容:
create table posts(username varchar, time timeuuid, post_text varchar, primary key(username, time))
Run Code Online (Sandbox Code Playgroud)
CF 行的数量与主键中第一个元素的变体数量相同。如果该元素的基数非常低,这可能会成为一个问题,因为最终可能会得到非常宽的 CF 行。
我的观点是:
我上面加粗的内容不应该是主键中的第二个元素。也就是说,次要元素或聚类元素导致宽行正确吗?
这是一个定义和词典的问题。宽行和行不是同一件事——给出一个定义,我会说在具有 PK(分区、集群)的表中,宽行的数量与分区键的数量一样多。行数由每个分区的所有聚类键的总和给出。
因此,在您引用的句子中,作者写了“行”,但他的意思是“宽行”。
CF宽行的数量与主键中第一个元素的变体数量相同。如果该元素的基数非常低,这可能会成为一个问题,因为最终可能会得到非常宽的CF 行。
可能在撰写本文时,宽行一词还没有被如此使用。所以给定这样一个表
CREATE TABLE wide_rows (
partitionkey text,
clusteringkey text,
data text,
PRIMARY KEY ((partitionkey), clusteringkey)
)
Run Code Online (Sandbox Code Playgroud)
只有分区键宽行,但行数取决于分区和集群
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)
Run Code Online (Sandbox Code Playgroud)
CQL 说我已经返回 3 行,但这 3 行属于同一分区键,因此这是 1 行宽。
HTH,卡洛
| 归档时间: |
|
| 查看次数: |
1345 次 |
| 最近记录: |