2016-12-13 4 views
0

Интересно, есть ли какая-либо функциональность в HBase (или любой simialr DB), которую я могу установить TTL для каждой строки, а затем HBase дает мне событие (запись в java) написать некоторую процедуру по истечении срока действия строки?TTL в строках и firewall в HBase

ответ

2

У HBase есть возможность для реализации пользовательской политики TTL. Вы должны создать свой собственный Region Observer сопроцессор с для следующих крючков:

  • preFlushScannerOpen - вызываются перед сканером итерации по MemStore смывания создается
  • preCompactScannerOpen - называется перед сканером перебирает все StoreFiles к быть уплотнен в создано
  • preStoreScannerOpen - вызывается перед пользователем инициатором сканирования начал

См. Подробности в сообщении блога Pluggable compaction and scanning policies. Но будьте осторожны и убедитесь, что ваша модификация влияет только на выбранные таблицы, в другом случае вы можете повредить мета-таблицу и, как следствие, кластер HBase.