[英]Is there a way for Cassandra to ignore clustering key when inserting?
現在我有一個包含三列的表: GroupId
、 ObjectId
和Data
,前兩列定義為分區鍵。
目前它按需要工作:如果GroupId
和ObjectId
匹配現有行,它會被覆蓋。
我正在嘗試添加按日期排序,所以我添加了第三列LastModified
並將其指定為聚類鍵。 雖然它適用於排序,但現在我有多行共享相同的GroupId
和ObjectId
對,這不是我需要的。
我怎樣才能實現以前的行為?
我不喜歡這兩種解決方案,因為它們似乎太復雜了,而且性能是一個大問題。 有沒有更好的辦法?
如果其他人面臨同樣的問題,我是這樣做的:
我有一個以GroupId
和ObjectId
為鍵的表。 我不確定這是否重要,但ObjectId
被定義為集群鍵。
然后您從以下視圖中獲得所需的結果:
CREATE MATERIALIZED VIEW IF NOT EXISTS objectlistbylast
AS SELECT * FROM objectlist
WHERE groupid IS NOT NULL AND objectid IS NOT NULL AND lastmodified IS NOT NULL
PRIMARY KEY(groupid , lastmodified, objectid )
WITH CLUSTERING ORDER BY(lastmodified DESC);
請注意,定義主鍵時的排序很重要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.