Интересно, есть ли какая-либо функциональность в HBase (или любой simialr DB), которую я могу установить TTL для каждой строки, а затем HBase дает мне событие (запись в java) написать некоторую процедуру по истечении срока действия строки?TTL в строках и firewall в HBase
0
A
ответ
2
У HBase есть возможность для реализации пользовательской политики TTL. Вы должны создать свой собственный Region Observer сопроцессор с для следующих крючков:
- preFlushScannerOpen - вызываются перед сканером итерации по MemStore смывания создается
- preCompactScannerOpen - называется перед сканером перебирает все StoreFiles к быть уплотнен в создано
- preStoreScannerOpen - вызывается перед пользователем инициатором сканирования начал
См. Подробности в сообщении блога Pluggable compaction and scanning policies. Но будьте осторожны и убедитесь, что ваша модификация влияет только на выбранные таблицы, в другом случае вы можете повредить мета-таблицу и, как следствие, кластер HBase.