【发布时间】:2016-05-12 04:42:19
【问题描述】:
现在我正在学习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);
没有主键,subscriberid、productid、operatorid 和subscriptiontype 是索引。这可能吗?
来自文档
主键:: 主键标识数据存储的位置和顺序。主键在创建表时定义 时间,不能更改。如果必须更改主键,则会创建一个新的表模式,并且 数据被写入新表。 Cassandra 是一个分区行存储,也是主键的一个组成部分, 分区键,标识哪个节点将保存特定的表行。 至少,主键必须包含一个分区键。复合分区键可以拆分一个 数据集,以便相关数据存储在单独的分区上。复合主键包括聚类 对分区上的数据进行排序的列。 表主键的定义在 Cassandra 中至关重要。仔细建模表中的数据将如何 在选择哪些列将定义主键之前插入和检索。的大小 分区,分区内数据的顺序,分区在节点之间的分布 集群 - 所有这些考虑因素决定了为表选择最佳主键。
【问题讨论】:
标签: cassandra cql cqlsh thrift-protocol nosql