Database Reference
In-Depth Information
Da die Wiki-Tabelle nun unsere gewachsenen Anforderungen erfüllt, kön-
nen wir damit beginnen, Daten in die Spalten der revision -Spaltenfamilie
einzufügen.
Daten programmatisch hinzufügen
Wie wir gesehen haben, eignet sich die HBase-Shell gut für solche Aufgaben
wie die Bearbeitung von Tabellen. Leider wird das Hinzufügen von Daten in
der Shell nicht besonders gut unterstützt. Mit dem put -Befehl können Sie nur
jeweils einen Spaltenwert setzen, bei unserem aktualisierten Schema müssen
wir aber mehrere Spaltenwerte gleichzeitig einfügen, damit alle den gleichen
Zeitstempel haben. Wir werden also mit dem Skripting beginnen müssen.
Das folgende Skript kann direkt in der HBase-Shell ausgeführt werden, weil
die Shell gleichzeitig ein JRuby-Interpreter ist. Wenn Sie es ausführen, wird
eine neue Version des Textes für die Homepage gespeichert und gleichzeitig
werden die Autoren- und Kommentarfelder gesetzt. JRuby läuft auf der Java
Virtual Machine (JVM), was uns Zugriff auf den HBase-Java-Code gibt. Diese
Beispiele funktionieren nur mit JVM-Ruby.
hbase/put_multiple_columns.rb
import 'org.apache.hadoop.hbase.client.HTable'
import 'org.apache.hadoop.hbase.client.Put'
def jbytes( * args )
args.map { |arg| arg.to _ s.to _ java _ bytes }
end
table = HTable.new( @hbase.configuration, "wiki" )
p = Put.new( * jbytes( "Home" ))
p.add( * jbytes( "text" , "" , "Hello world" ))
p.add( * jbytes( "revision" , "author" , "jimbo" ))
p.add( * jbytes( "revision" , "comment" , "my first edit" ))
table.put( p )
Die import -Zeilen versorgen die Shell mit Referenzen auf nützliche HBase-
Klassen. Auf diese Weise müssen wir später nicht den vollständigen Namens-
raum angeben. Als Nächstes verarbeitet die jbytes -Funktion eine beliebige
Anzahl von Argumenten und gibt ein in Java-Byte-Arrays umgewandeltes
Array zurück (so wie es die HBase-API-Methoden verlangen).
Danach erzeugen wir eine lokale Variable ( table ), die auf unsere Wiki-Tabel-
le zeigt, wobei wir das @hbase -Administrationsobjekt für Konfigurationsinfor-
mationen nutzen.
 
Search WWH ::




Custom Search