Cassandra UUID理解

时间:2016-04-06 08:23:48

标签: cassandra

根据cassandra架构,我们应该将字段称为COMPOUND KEY。通过该键,我们可以从列中选择数据。

对于考试:

CREATE TABLE hotelier.country (
    uuid ascii PRIMARY KEY,
    name ascii
) WITH bloom_filter_fp_chance = 0.01

只能通过uuid字段

选择数据

如果要按名称选择,则需要将广告字段名称作为复合键。

正确。

我的问题是为什么需要使用UUID,如果一般复合键唯一。为什么需要添加辅助字段UUID?

BR!

2 个答案:

答案 0 :(得分:0)

  

如果要按名称选择,则需要将广告字段名称作为复合键。

不,如果您将名称添加为复合主键,则可以通过 uuid AND name 进行选择,您不能仅按名称选择,您必须同时提供uuid

  

我的问题是为什么需要使用UUID,如果通常复合键唯一。

因为在Cassandra中,Oracle中没有序列来生成代理键。这样做的方法是使用随机uuid生成器客户端,例如java.util.UUID.randomUUID()

答案 1 :(得分:0)

  

我的问题是为什么需要使用UUID,如果一般复合键唯一。为什么需要添加辅助字段UUID?

如果您确定您的COMPOUND KEY 非常 UNIQUE ,则不需要使用UUID。

e.g。如果您的PK是电子邮件,并且您确定没有人使用相同的电子邮件地址,您可以将PK用作PRIMARY KEY (email)

UUID只是用来确保行/分区是唯一的,因为它是随机的32个字母数字字符,因此复制概率非常低。

根据wikipedia,关于随机UUID中重复的可能性:

  

只有在接下来的100年中每秒产生10亿UUID后,创建一个副本的概率大约为50%。或者,换句话说,如果地球上每个人拥有6亿UUID,那么一次复制的概率约为50%。