仅在Cassandra中的分区键

sta*_*low 2 cassandra

在Cassandra中,我理解默认情况下,给定PRIMARY KEY(id1,id2),id1将是分区键,id2将是群集键.

我想知道是否可以在没有任何聚类键的情况下定义两个分区键,如下所示:

PRIMARY KEY ((id1, id2));
Run Code Online (Sandbox Code Playgroud)

xma*_*s79 5

  1. 你的理解是正确的.
  2. PRIMARY KEY ((id1, id2))是正确的,并且您指定一个列组成的分区键.

在第二种情况下,您只能通过指定两个列值来查询数据.例如:

SELECT * FROM mytable WHERE id1=1 AND id2=3;
Run Code Online (Sandbox Code Playgroud)

和查询如下:

SELECT * FROM mytable WHERE id1=1;
Run Code Online (Sandbox Code Playgroud)

将失败,因为它id2 您的主键的一部分.