2016-12-13 3 views
0

Ich frage mich, ob es irgendwelche Funktionalität in HBase (oder irgendeiner simalr DB) gibt, die ich die TTL für jede Zeile setzen kann, und dann HBase gibt mir ein Ereignis (Schreiben in Java) eine Prozedur über den Ablauf der Zeile schreiben?TTL auf Zeilen und der Ereignisfireoff in HBase

Antwort

2

HBase hat eine Möglichkeit zur Implementierung von benutzerdefinierten TTL-Richtlinie. Sie müssen Ihre eigenen Region Observer einen Coprozessor mit für folgende Haken erstellen:

  • preFlushScannerOpen - aufgerufen, bevor ein Scanner über das MemStore Iterieren gespült wird
  • preCompactScannerOpen erstellt wird - genannt vor einem Scanner alle StoreFiles iterieren zu
  • preStoreScannerOpen wird erstellt verdichtenden - aufgerufen, bevor ein Benutzer initiierte Scan gestartet ist

Weitere Details finden Sie im Blogbeitrag Pluggable compaction and scanning policies. Aber seien Sie vorsichtig und stellen Sie sicher, dass Ihre Änderung nur ausgewählte Tabellen betrifft. In einem anderen Fall können Sie die Metatabelle und folglich einen HBase-Cluster beschädigen.