TTL для таблиц Hbase работает с классификатором столбцов и не удаляет обновленные столбцы. - PullRequest
0 голосов
/ 13 марта 2019

Почему TTL forHbase Tables работает с Qualifier Column и не удаляет полную строку, если некоторые Qualifier обновляются позже. Он удаляет только спецификатор столбца, который находится за пределами TTL. Является ли это желаемым поведением, Как удалить полную строку для такого случая?

1 Ответ

0 голосов
/ 03 июля 2019

Если вы определяете TTL на columnfamily уровне при создании таблицы

(or)

С помощью alter команда, тогда мы можем удалить всю строку из HBase.

Example:

1. Creating table with TTL:

hbase(main):> create 'ttl_tbl', {'NAME' => 'cf','TTL' => 20} //all rows will expire after 20 secs
hbase(main):> put 'ttl_tbl','row1','cf:desc', 'TTL shu'
hbase(main):> put 'ttl_tbl','row1','cf:desc1', 'TTL shu'
hbase(main):> scan 'ttl_tbl'
ROW                                                    COLUMN+CELL
 row1                                                  column=cf:desc, timestamp=1562101913869, value=TTL shu
 row1                                                  column=cf:desc1, timestamp=1562101914445, value=TTL shu

After 20 secs:

hbase(main):009:0> scan 'ttl_tbl'
ROW                                                    COLUMN+CELL
0 row(s)

2. Creating table without TTL:

hbase(main):010:0> create 'ttl_tbl1','cf'
hbase(main):011:0> put 'ttl_tbl1','row1','cf:desc','TTL shu',{TTL => 10000} //this row will be deleted after 10 sec as TTL on qualifier is in milliseconds

hbase(main):012:0> put 'ttl_tbl','row1','cf:desc1', 'TTL shu' //no ttl will not be deleted.
...