1
我的表中的每一行都有4個值product_id
,user_id
,updated_at
,rating
。我應該如何設計模式以獲取Cassandra中每個集羣密鑰的最後2條記錄?
我想創建一個表來找出有多少用戶在一定時期內改變rating
。
目前我的模式是這樣的:
CREATE TABLE IF NOT EXISTS ratings_by_product (
product_id int,
updated_at timestamp,
user_id int,
rating int,
PRIMARY KEY ((product_id ), updated_at , user_id))
WITH CLUSTERING ORDER BY (updated_at DESC, user_id ASC);
,但我不能想出的辦法只能獲得在給定的時間窗口中的最後2行,每行用戶。
上查詢或更改架構任何意見,將不勝感激。
感謝阿龍,問題是我不能夠知道哪些用戶評價某一個產品,除非我跑了一個額外的查詢。另一個問題是在您的表格中,我只能得到給定用戶的所有產品評級,而不是所有用戶對特定產品的最後2個評級,難道我不能嗎? – Harrison
@哈里森對不起,我以爲我讀到你想給用戶的最後2個評級。但是,您希望時間範圍內* ALL *用戶的最後2個評分...不是嗎?是的,單靠CQL是不可能的。這聽起來像你需要做一個子查詢,使用類似Spark的東西。 – Aaron