Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra中的每个表都应该有一个分区键吗?_Cassandra_Nosql_Cql_Datastax Enterprise - Fatal编程技术网

Cassandra中的每个表都应该有一个分区键吗?

Cassandra中的每个表都应该有一个分区键吗?,cassandra,nosql,cql,datastax-enterprise,Cassandra,Nosql,Cql,Datastax Enterprise,我正在尝试创建一个Cassandra表,在其中根据时间戳存储商店的日志。我还想创建一个查询,该查询按照时间戳的降序返回数据。如果我将时间戳作为主键,它将自动成为分区键,因为我没有任何其他列作为复合主键 在Cassandra中,我们不能对分区键进行排序。有没有办法让我的时间戳作为主键而不是分区键(一个没有分区键的Cassandra DB) 提前谢谢 表格创建(如果需要): CREATE TABLE myCass.logs(timestamp timestamp, logs text, PRIMAR

我正在尝试创建一个Cassandra表,在其中根据时间戳存储商店的日志。我还想创建一个查询,该查询按照时间戳的降序返回数据。如果我将时间戳作为主键,它将自动成为分区键,因为我没有任何其他列作为复合主键

在Cassandra中,我们不能对分区键进行排序。有没有办法让我的时间戳作为主键而不是分区键(一个没有分区键的Cassandra DB)

提前谢谢

表格创建(如果需要):

CREATE TABLE myCass.logs(timestamp timestamp, logs text, PRIMARY KEY (timestamp));

因为你有时间戳,你知道年、月、日。您可以使用它们作为分区键,并将时间戳作为集群列。通过这种方式,您还可以满足对分区键的需要,您将拥有数据的主键,您可以按时间戳排序,并且您可以将数据均匀地分布在集群中


这种分割数据的方法称为bucketing。这里有一些关于这个主题的好文章-

timestamp列采用13位Unix时间戳值,我想按原样使用它。我也将在其他查询中使用相同的时间戳值(13位)。有没有办法创建一个没有主键或分区键的表。。???