HBase hat keine Sequenzgeneratoren. Und wie Sergey bemerkt, wird die Verwendung einer Sequenz als Zeilenschlüssel nicht empfohlen. Wenn man sich mit einem solchen Bedürfnis konfrontiert sieht, sollte es sorgfältig analysiert werden. Wenn Sie solche benötigen, wird eine salted key approach empfohlen.
HBase unterstützt globale Zähler (increment actions), die zum Generieren von Sequenzen verwendet werden können. Diese können jedoch nicht atomisiert verwendet werden, um den Schlüsselwert für eine Zeile zu generieren, die hinzugefügt wird (Sie müssen den Wert erhöhen und abrufen und dann die neue Zeile einfügen). So können Sie Lücken bekommen, wenn der nachfolgende Put fehlschlägt und Sie 2 RPCs haben.
Wenn wir Zähler auf diese Weise verwenden, verwenden wir gesalzene Schlüssel, akzeptieren, dass Lücken auftreten können, und erhöhen sie um Blöcke, um einen RPC für jeden benötigten Schlüssel zu vermeiden.
arbeiten Sie in der Shell oder in Java-Code? –
Java-Code. Können wir mit dem Zählerkonzept in HBase umgehen? Wenn ja, wie können wir es tun? – vikv
Lesen Sie über Rowkeys und ihre Verteilung über die Regionsserver und wie schlecht die sequentiellen Rowkeys Hotspotting von Regionen usw. in Erwägung ziehen würden. Sie können einen sequentiellen Wert für eine Spaltenfamilie mit einer beliebigen Programmiersprache mit hbase-Treibern usw. erstellen. Lesen Sie auch dies Antwort hier und die Frage kann ein Duplikat davon sein - http://stackoverflow.com/questions/26890944/hbase-auto-increment-any-column-row-key –