2012-11-21 56 views
1

我有一個用例並希望在下面提出建議。閱讀cassandra中最近更新的行

結構:

  Rowkey_1: 

         Column1 = value1; 
         Column2 = value2; 
      Rowkey_2: 

         Column1 = value1; 
         Column2 = value2; 

「假設我寫1000行到卡桑德拉與夫婦列的每行一段時間後,我只更新100行,併爲列值的變化。」

- >當我從卡桑德拉讀取數據時,我只想得到這100個更新的行,而不是整行的關鍵信息。

有沒有辦法說卡桑德拉喜歡給我從開始的所有行鍵 - >結束,時間在「TIME_START」到「TIME_END」

在SQL行話之間 - >從「」到「選擇「time_start」和「time_end」之間的時間。

P.S.我使用Cassandra閱讀基本時間系列,它說您可以註釋rowkey,如下所示 插入數據 - {:key =>'server1-load-20110306',:column_name => TimeUUID(now),:column_value => 0.75}

此處的列族具有TimeUUID列。

我的問題是,你可以註釋你的日期和時間這樣的rowkey:{:關鍵==> 2012年11月18日16時00分15秒}

或任何其他方式獲得僅最近更新行。

任何建議/指導真的很感激。

回答

2

除非您使用不應使用的ByteOrderedPartitioner,否則您無法對密鑰執行範圍查詢。做到這一點的方法是將已知的哨兵值寫爲鍵,例如表示一天的開始的時間戳。然後,您可以按時間進行分欄。

+0

感謝您的回答,任何可能引用的地方都可能已經實現。 – cu111

+0

@ rs_atl:我有一個想法,有沒有辦法將一個布爾值傳遞給對。我看到hector創建列只能讓通過:Hfactory.createcolumn(K,V,序列化程序,序列化程序) – cu111

+0

[This question](http://stackoverflow.com/questions/11014014/get-column-position/11019631# 11019631)討論了標記值的使用,儘管它們不是特定的日期。如果您有具體問題,我已經多次使用過日戳。是的,您可以使用BooleanSerializer將布爾值傳遞給Hector。 –