簡體   English   中英

在HBase中按創建日期而不按時間戳刪除行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM