cassandra中的复合键与复合列

时间:2014-07-04 06:02:49

标签: cassandra hector

我想知道在Cassandr中使用复合列和复合键的位置和时间

1 个答案:

答案 0 :(得分:2)

复合键使用在许多情况下都很有用。

想象一下表用户,其中您有一个用户ID(uuid)作为主键(单键) 除非您知道用户的id(此时忽略二级索引),否则无法查询此表。

现在让我们考虑一个表格,你不再使用id作为主键,但你使用的是由(姓名,电子邮件)

组成的复合键

现在您可以通过了解

来查询您的用户


姓氏 - 姓 姓氏 - 姓氏 - 电子邮件

主键必须是唯一的,在这种情况下,电子邮件应该保证用户是唯一的。 注意,通过电子邮件查询您必须知道姓名和姓氏,以查询您必须知道姓名的姓氏(除非您不使用特定方式为您的数据建模,否则这是真的)

CREATE TABLE users (
  name text,
  surname text,
  email text,
  age int,
  address text,
  id uuid,
  PRIMARY KEY (name, surname, email)
)

另一个有用的场景可以是数据排序。 想象一下,你有一张表,你可以在其中保存由高音扬声器(由uuid标识)制作的推文(由时间uuid标识)。

在cassandra中,密钥的第一部分称为分区密钥,其余部分称为集群密钥。对于相同的分区,密钥数据可以通过聚类密钥进行排序

CREATE TABLE tweets (
  tweeter_id uuid,
  tweet_id timeuuid,
  content text,
  PRIMARY KEY (tweeter_id, tweet_id)
) WITH CLUSTERING ORDER BY (tweet_id DESC)

在这种情况下,一旦你问一下高音扬声器发出的推文,他们就会免费为时间排序。

干杯, 卡罗