2012-03-01 24 views
2

下面是一個例子使用案例:如何在cassandra(使用CQL)中實現固定數量的(timeuuid)列?

您需要存儲最後N(假設1000爲固定桶大小),在基於timeuuid列中的所有細節用戶操作。

正常情況下,每個用戶的操作已經在「UserAction」列家族中,其中用戶標識爲行鍵,行爲在timeuuid列中。您也可以擁有「AllActions」列家族,其中存儲與列名稱和用戶標識相同的timeuuid作爲列值的所有操作。它基本上是一個關係列家族,但不幸的是沒有任何用戶操作細節。由於隨機分配器,我想這個列家族的價格很貴。另一方面,如果將所有細節存儲在「AllActions」CF中,則cassandra無法在一個點上正確處理該大行。這就是爲什麼我希望存儲最後N個用戶操作,並在固定數量的基於timeuuid的列中存儲所有詳細信息。

也許你可能對這種使用情況更好的設計方案。我喜歡聽到......

如果沒有,問題是如何實現在卡桑德拉(timeuuid)列的固定數量(與CQL)有效?

插入後,如果我們在cql的DELETE中有某種範圍的支持,我們可以刪除舊的(溢出)列。 AFAIK沒有這方面的支持。

那麼,有什麼想法?在此先感謝...

回答

2

恕我直言,這是C *必須處理自己像壓實。在客戶端處理這個問題並不是一個好主意。

也許,我們需要一些列族的配置(存儲)選項,以使它們適合「最新數據」。

+0

這裏有點像[CASSANDRA-3929](https://issues.apache.org/jira/browse/CASSANDRA-3929)。 – 2012-03-05 15:52:17

相關問題