Cassandra 集群键中的粒度级别(高唯一值)

Cassandra 集群键中的粒度级别(高唯一值),cassandra,data-modeling,cassandra-2.0,Cassandra,Data Modeling,Cassandra 2.0,我对卡桑德拉数据建模并不陌生。我试图了解我是否可以在集群键中具有高唯一值。例如:我们有4个专栏。Storeid、发货状态、orderid和guestname。我们每天大约有3000家商店、4个状态类型和高订单ID。我们需要查询storeid、status和orderid。所以我尝试将storeid和status作为分区键,orderid作为集群键。所以我的问题是,我能在集群键中保留这样一个最低粒度级别的列吗。orderid每天都会有巨大的唯一ID。如果我在集群键中添加guestname也会有任何

我对卡桑德拉数据建模并不陌生。我试图了解我是否可以在集群键中具有高唯一值。例如:我们有4个专栏。Storeid、发货状态、orderid和guestname。我们每天大约有3000家商店、4个状态类型和高订单ID。我们需要查询storeid、status和orderid。所以我尝试将storeid和status作为分区键,orderid作为集群键。所以我的问题是,我能在集群键中保留这样一个最低粒度级别的列吗。orderid每天都会有巨大的唯一ID。如果我在集群键中添加guestname也会有任何问题。tnx供您参考。

使用
storeid
shipping\u status
作为分区键的一部分,然后使用
orderid
作为聚类键,使情况与时间序列数据非常相似

Cassandra非常适合使用该数据模型(在前CQL术语中称为“宽行”)存储内容,并且限制设置为每个分区的集群键的2x10E9(20亿)值

因此,您不应该使用“开放式”分区,而应该使用分块:您可以使用分区键
storeid+status+year
,如果您是Amazon,每年的订单量远小于2x10E9,或者
storeid+status+year+month


要回答第二个问题,不,所有列都是主键一部分的表没有问题。

使用
storeid
shipping\u status
作为分区键的一部分,然后使用
orderid
作为集群键,这使得情况非常类似于时间序列数据

Cassandra非常适合使用该数据模型(在前CQL术语中称为“宽行”)存储内容,并且限制设置为每个分区的集群键的2x10E9(20亿)值

因此,您不应该使用“开放式”分区,而应该使用分块:您可以使用分区键
storeid+status+year
,如果您是Amazon,每年的订单量远小于2x10E9,或者
storeid+status+year+month

要回答第二个问题,不,所有列都是主键一部分的表没有问题