[英]Delete rows by creation date and not by timestamp in HBase
我有一個HBase表,其中的行有時會更新(顯然它們的時間戳也是如此)
我想知道是否有根據行的創建日期對行執行TTL的內置方法? (因此,如果我用較新的版本更新了一行,它不會影響該行的刪除時間嗎?)
只是一個例子:將20年2016年4月20日的'row1'的值為'aaa'放在TTL為2天的表'test'上,然后如果我第二天再執行一次put'row1'的話,該行仍將被刪除在22/04/2016上(而不是在23/04/2016上,就像常規TTL功能一樣)
如果沒有內置的方法,那么用我自己的代碼(Java,scala或其他)執行此操作的一種好方法是什么? 我認為我無法將全表掃描檢索到內存中,是否有任何方法可以延遲加載整個表?
提前致謝
從文檔中:
ColumnFamilies可以設置以秒為單位的TTL長度,並且一旦達到到期時間,HBase將自動刪除行。 這適用於一行的所有版本-甚至是當前版本。 在HBase中為該行編碼的TTL時間以UTC指定。
基於此,您可以在CF上設置一個ttl,一旦達到ttl,該行將被擦除。 此行的每次更新都會重置計時器,因此要重置該行,您需要使用相同的時間戳覆蓋最后一次寫入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.