Database Reference
In-Depth Information
hbase>
disable 'wiki'
0 row(s) in 1.0930 seconds
Nun können wir die Charakteristika der Spaltenfamilie mit dem
alter
-Befehl
ändern.
hbase>
alter 'wiki', { NAME => 'text', VERSIONS =>
hbase
*
org.apache.hadoop.hbase.HConstants::ALL
_
VERSIONS }
0 row(s) in 0.0430 seconds
Hier weisen wir HBase an, für die Spaltenfamilie
text
das
VERSIONS
-Attribut
zu ändern. Es gibt eine Reihe anderer Attribute, die wir setzen können, von
denen wir einige am zweiten Tag behandeln werden. Die
hbase
*
-Zeile ist eine
Fortsetzung der vorherigen Zeile.
Eine Tabelle ändern
Operationen, die die Charakteristika der Spaltenfamilie ändern, können sehr
teuer werden, weil HBase eine neue Spaltenfamilie mit der gewählten Spe-
zifikation erzeugen und dann alle Daten kopieren muss. Bei einem Produk-
tivsystem kann das zu signifikanten Ausfallzeiten führen. Aus diesem Grund
ist es eine gute Idee, die Optionen einer Spaltenfamilie im Vorfeld festzulegen.
Während die Wiki-Tabelle noch deaktiviert ist, wollen wir die Spaltenfamilie
revision
einfügen. Dazu verwenden wir ebenfalls den
alter
-Befehl:
hbase>
alter 'wiki', { NAME => 'revision', VERSIONS =>
hbase
*
org.apache.hadoop.hbase.HConstants::ALL
_
VERSIONS }
0 row(s) in 0.0660 seconds
Genau wie bei der
text
-Familie haben wir nur eine
revision
-
Spaltenfamilie
in das Tabellenschema eingefügt, keine individuellen
Spalten
. Auch wenn
wir davon ausgehen, dass jede Zeile letztlich
revision:author
und
revisi-
on:comment
enthält, liegt es am Client, diese Erwartung zu erfüllen. In einem
formalen Schema festgelegt ist das nicht. Wenn jemand
revision:foo
für eine
Seite speichern möchte, wird HBase ihn nicht aufhalten.
Weiter geht's
Nachdem wir unser Schema entsprechend erweitert haben, aktivieren wir
unser Wiki wieder:
hbase>
enable 'wiki'
0 row(s) in 0.0550 seconds