cassandra ::我可以创建没有主键的表吗?

Ren*_*V R 5 cql cassandra nosql thrift-protocol cqlsh

现在我正在学习Cassandra,所以我得到了一个没有主键的表。但是它有一些索引。

所以这是我的疑问,我可以创建没有主键的表吗?

CREATE TABLE subscription (subscriberid varchar,productid varchar,panaccessproductid varchar,operatorproductid varchar,price float,fallback varchar,paymenttype varchar,operatorid varchar,subscriptiontype varchar,expiry timestamp,subscriptionstatus varchar,created timestamp);
Run Code Online (Sandbox Code Playgroud)

没有主键,subscriberid,productid,operatorid和subscriptiontype是索引。这可能吗?

从文档中

首要的关键::主键标识数据存储的位置和顺序。主键是在表创建时定义的,不能更改。如果必须更改主键,则会创建一个新的表架构,并将数据写入新表。Cassandra是分区行存储,主键(分区键)的组件标识哪个节点将保存特定的表行。主键至少必须包含一个分区键。复合分区键可以拆分数据集,以便将相关数据存储在单独的分区中。复合主键包括聚类列,这些列对分区上的数据进行排序。在Cassandra中,表主键的定义至关重要。在选择哪些列定义主键之前,请仔细建模将如何插入和检索表中的数据。分区的大小,分区中数据的顺序,分区在群集节点之间的分布-所有这些考虑因素决定了为表选择最佳主键。

doa*_*hai 8

简单的答案是否定的,主键是必需的