2017-06-01 22 views
0

有小表我想限制在Cassandra中的单个分区。我尝试了各种常量作为分区键,但Cassandra拒绝为无效。例如primary key(1, other_column),primary key(true, other_column),primary key('1', other_column)。有没有办法将表限制为单个分区而不向表中添加虚拟常量列?如何在Cassandra中定义常量分区键

回答

1

不能定义常量的值作为分区键或任何其他列

而是定义一个普通的列(即分区)作为分区键,每次插入/更新或删除使用一个恒定值的时间。

例子:

让我们创建一个表名为partition列,并作为分区键。

现在CRUD操作:

INSERT INTO small_table(partition, other_column) VALUES(1, ?); 
SELECT * FROM small_table WHERE partition = 1; 
UPDATE small_table SET other_column = ? WHERE partition = 1; 
DELETE FROM small_table WHERE partition = 1; 

注:这是一个不好的设计,你的数据不会跨集群分布。所有您选择,插入,更新,删除操作将在包含此数据的主机和副本上执行