2014-08-27 90 views
0

比方說,我有一個應用程序,它定期收到一些測量數據。 我知道測量數據的準確時間,我希望在測量後的30天內刪除每一段數據。操作Cassandra的寫入時間值

我沒有立即將數據插入數據庫,但我想使用Cassandra的生存時間功能。

有沒有辦法在Cassandra中操縱系統實習生時間戳,以便我可以將生存時間設置爲60天,但它實際上是用我的時間戳來衡量每行的壽命?

E.g.我在2014年8月27日 - 19日測量了一些東西。我在2014年8月27日 - 20日將這些數據插入數據庫,並將生存時間值設置爲1天。我現在想要將該行從2014年8月28日刪除 - 19:00而不是2014年8月28日 - 20:00像平時一樣。

是這樣的可能嗎?

回答

0

我建議你根據你的例子如下因素的方法:

  1. 之前插入計算ΔX= insertTime - measureTime
  2. 設定的TTL =1天 - ΔX有關插入行

加成評論的基礎:

您可以使用Astyanax -client與Batch mutation「同時輸入多個值」。可以在每一列和整行上設置TTL。

+0

我真的很想在應用程序本身沒有這個(會容易得多)。目前還不清楚,是否需要一次同時輸入多個值。 http://www.datastax.com/documentation/cql/3.0/cql/cql_reference/batch_r.html – mkay 2014-08-27 22:11:39

+0

@mkay,看看我更新的答案。不幸的是,其他計算TTL的方法不能提供。 – DmitryKanunnikoff 2014-08-28 06:15:52