0
我有一個3節點datastax cassandra(社區)羣集與巨大的數據。我有幾張桌子,裏面有3-5億條記錄。我想從這些表中刪除超過90天的數據。Cassandra選擇無超時查詢
問題是我該如何運行無超時運行的select查詢。我目前正在運行下面的查詢
NOW = $(日期-d 「 - 3月」 + 「%Y-%間%d」)
從table_name的選擇day_ts其中minute_ts < '$ NOW' LIMIT 100000 ALLOW過濾;
即使我限制選擇查詢結果,它仍然會解析整個3-5億條記錄,然後過濾數據。
請建議什麼可以是一個有效的方法來做到這一點。
同意@ xmas79,你需要過濾holw dataser並將其轉移到不同的模型;在新模型上確保TTL(生存時間)設置正確,以便將來不會出現此問題 –
這是我的表結構。 –
CREATE TABLE table_name(srcip inet,log_datemin timestamp,id uuid,PRIMARY KEY(srcip,log_datemin,id)WITH CLUSTERING ORDER BY(log_datemin ASC,id ASC)AND caching ='{「keys」:「ALL」,「rows_per_partition」 :「NONE」}'AND comment =''AND default_time_to_live = 0 AND gc_grace_seconds = 864000 AND read_repair_chance = 0.0 AND speculative_retry = '99 .PERCENTILE'; –