我必須創建並查詢具有組合鍵的列家族作爲[timestamp,long]。另外, 查詢時我想爲範圍查詢時間戳(如xxx和yyy之間的時間戳)這可能嗎?作爲cassandra列家族/ hector的鍵的時間戳/日期
目前我正在做一些非常有趣的事情(我知道它不正確)。我使用時間戳字符串爲給定範圍創建鍵並與長連接。
like ,
1254345345435-1234
3423432423432-1234
1231231231231-9999
並將密鑰組傳遞給hector api。 (所以如果我有日期範圍爲1個月,我想每分鐘的數據,我創建30 * 24 * 60 * [次要密鑰長 - 數])
我可以解決與組合鍵的串聯問題。但查詢部分是我想了解的。
據我所知,因爲我們使用RandomPartitioner,所以我們不能根據範圍進行真正的查詢,因爲密鑰是MD5校驗和。這種用例的理想設計是什麼?
我的架構和要求如下:(實際CSH)
CREATE TABLE report(
ts timestamp,
user_id long,
svc1 long,
svc2 long,
svc3 long,
PRIMARY KEY(ts, user_id));
select from report where ts between (123445345435 and 32423423424) and user_id is in (123,567,987)
您理解正確 - 沒有使用隨機分區程序的rowkey範圍查詢。 – tysonjh
@tysonjh這種情況下的替代方法是什麼?我認爲它很常見......簡單的時間表圖表。 –
您需要在計劃查詢它的方式之後對模式進行建模,因此請使用合適的粒度爲您希望進行範圍查詢的值創建反向(又名反向,反向)索引,以便以期望的精度查詢它們。 – tysonjh