2016-12-14 2 views
0

In meinem Verständnis, wenn ich die Zeile mit vorhandenen Zeilenschlüssel mit Methoden wie put aktualisieren, dann fügen wir eine neue Version der Zeile, aber wenn der Zeilenschlüssel nicht existiert, fügt es immer noch eine neue Zeile. Meine Anforderung ist, dass, wenn der Zeilenschlüssel nicht existiert, keine neue Zeile eingefügt wird.Aktualisieren Sie die Zeile mit nicht vorhandenen Zeilenschlüssel für HBase?

Wie mache ich das mit dem hbase Java Client api?

+0

Bitte lesen Sie [Wie stelle ich eine gute Frage] (http://stackoverflow.com/help/how-to-ask) und bearbeiten Sie Ihre Frage entsprechend, da dies Ihre Chancen auf gute Antworten im Gegenzug erheblich verbessern wird Lassen Sie Ihre Frage nicht ablehnen oder schließen. –

Antwort

0

Sie können checkAndPut(rowkey,family,qualifier,CompareFilter.CompareOp.NOT_EQUAL,null,put) verwenden Aber es überprüft das Vorhandensein einer Spalte in einem Zeilenschlüssel und setzt dann.

Um das Vorhandensein eines Zeilenschlüssels zu überprüfen, führen Sie zuerst eine get-Operation durch und prüfen Sie, ob sie existiert oder nicht, und fahren Sie dann mit put fort.

+0

Wie bereits erwähnt, wenn eine Spalte nicht vorhanden ist, wird es nicht Put.Auch es basiert nicht auf Annahmen.Wenn Sie möchten, können Sie den vollständigen Code ansehen. [Link] http://ideone.com/I1plTL –

+0

Ich glaube, Du hast recht. In diesem Fall fügen Sie bitte das vollständige Codebeispiel in Ihre Antwort ein. –

+0

checkAndPut ist genau das, was ich brauchte, vielen Dank! –

Verwandte Themen