我有Cassandra数据库和其中的一些表。表没有定义主键/唯一键/组合键。我们如何识别表中的唯一记录?就像oracle有ROWID的概念一样,我们也有Cassandra数据库的内容。N/A
93ze6v8z1#
如果没有定义主键,则无法创建Cassandra表。主关键字中的分区关键字决定了每个记录是如何“分区”或在集群中的节点之间分配的。没有分区关键字,Cassandra就不知道如何在集群中存储数据。下面是一个按电子邮件地址分区的示例表:
CREATE TABLE users_by_email ( email text, firstname text, lastname text, PRIMARY KEY (email) )
在此示例中,如果不知道用户的电子邮件地址,则无法读取或写入表。有关Cassandra如何在集群中的节点之间分发数据的更多信息,请参见Partitioners in Cassandra。另外还有关于how Cassandra stores data in partitions的视频短片(摘自DataStax Academy上的DS 201 Cassandra基础课程)。干杯!
1条答案
按热度按时间93ze6v8z1#
如果没有定义主键,则无法创建Cassandra表。
主关键字中的分区关键字决定了每个记录是如何“分区”或在集群中的节点之间分配的。没有分区关键字,Cassandra就不知道如何在集群中存储数据。
下面是一个按电子邮件地址分区的示例表:
在此示例中,如果不知道用户的电子邮件地址,则无法读取或写入表。
有关Cassandra如何在集群中的节点之间分发数据的更多信息,请参见Partitioners in Cassandra。另外还有关于how Cassandra stores data in partitions的视频短片(摘自DataStax Academy上的DS 201 Cassandra基础课程)。干杯!