對不起,標題可能會/可能不會詳細說明我的意圖。Cassandra選擇可能沒有主鍵的集羣密鑰範圍
這是問題所在。我需要根據日期範圍選擇數據,並且我們的大多數查詢都有用於查詢的'id'字段。
所以,我已經創建了數據模型,ID爲主鍵,日期爲集羣鍵。
本質上就像下面(我只是使用假/示例語句,因爲我不能給出實際的細節)。
create table tab1(
id text,
col1 text,
... coln text,
rec_date date,
rec_time timestamp,
PRIMARY KEY((id),rec_date,rec_time)
) WITH CLUSTERING ORDER BY rec_date DESC, rec_time DESC;
它適用於大多數的查詢和工作正常。
但是,我試圖優化以下情況。
- >所有比日ABCD-XY-KL
哪個以下方法之一將是爲我好,更多的記錄?或者比這兩個更好。
1)非常基本或簡單的方法。使用查詢:
select * from tab1 where id > '0' AND rec_date > 'abcd-xy-kl'
每條記錄將基本上是比 '0' 更高。它可能仍然會進行全表掃描。
2)創建於rec_date二級指標和簡單的使用查詢:
select * from tab1 where rec_date > 'abcd-xy-kl'
此外,一個關鍵的事情是我使用的火花,並使用cassandraSqlContext.sql得到數據框。
所以,考慮到以上所有的細節,哪種方法會更好。