2017-06-01 20 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; 

注:這是一個不好的設計,你的數據不會跨集羣分佈。所有您選擇,插入,更新,刪除操作將在包含此數據的主機和副本上執行