HBase データ操作コマンド - put, get, delete, deleteall, scan, count, truncate
Data Manipulation commands
ここでは、データを操作する HBase Shell コマンドを紹介する。
put - データ登録/変更
ここでは、HBase テーブルでデータを作成および変更する方法を紹介する。
HBase に次のようなテーブルを作成する。

put コマンドを使用して、テーブルに row を登録および変更できる。構文は次のとおりである。
put '<table name>', '<row id>', '<column family>:<column name>', '<value>'
最初の row 登録
create 'order', 'customer', 'sales'
put 'order', '101', 'customer:name', 'John White'
put 'order', '101', 'customer:city', 'Los Angeles'
put 'order', '101', 'sales:product', 'Chairs'
put 'order', '101', 'sales:amount', '400.00'
まずテーブルを作成する。
hbase(main):001:0> create 'order', 'customer', 'sales'
Created table order
Took 5.0510 seconds
=> Hbase::Table - order
最初の row の値をテーブルに登録する。
hbase(main):002:0> put 'order', '101', 'customer:name', 'John White'
Took 0.6725 seconds
hbase(main):003:0> put 'order', '101', 'customer:city', 'Los Angeles'
Took 0.0318 seconds
hbase(main):004:0> put 'order', '101', 'sales:product', 'Chairs'
Took 0.0988 seconds
hbase(main):005:0> put 'order', '101', 'sales:amount', '400.00'
Took 0.0423 seconds
テーブル全体を scan すると、次のような結果が表示される。
hbase(main):006:0> scan 'order'
ROW COLUMN+CELL
101 column=customer:city, timestamp=1686908392705, value=Los Angeles
101 column=customer:name, timestamp=1686908388954, value=John White
101 column=sales:amount, timestamp=1686908401071, value=400.00
101 column=sales:product, timestamp=1686908398256, value=Chairs
1 row(s)
Took 0.4121 seconds
データ変更
put コマンドを使用して既存 cell の値を変更できる。構文はデータを登録するときと同じである。
次のように新しい値を指定すればよい。
put 'order','101','customer:city','LA'
コマンド実行は次のとおりである。
hbase(main):007:0> put 'order','101','customer:city','LA'
Took 0.0677 seconds
hbase(main):008:0> scan 'order'
ROW COLUMN+CELL
101 column=customer:city, timestamp=1686909532774, value=LA
101 column=customer:name, timestamp=1686908388954, value=John White
101 column=sales:amount, timestamp=1686908401071, value=400.00
101 column=sales:product, timestamp=1686908398256, value=Chairs
1 row(s)
Took 0.1186 seconds
get - データ照会
get コマンドは、HBase のテーブルからデータを読み取るために使用される。構文は次のとおりである。
get '<table name>', '<row id>'
次の例では、get コマンドを使用して order テーブルの 101 row を照会している。
hbase(main):009:0> get 'order', '101'
COLUMN CELL
customer:city timestamp=1686909532774, value=LA
customer:name timestamp=1686908388954, value=John White
sales:amount timestamp=1686908401071, value=400.00
sales:product timestamp=1686908398256, value=Chairs
1 row(s)
Took 0.3162 seconds
特定 row 照会
次は、get コマンドを使用して特定 column を照会する構文である。
get '<table name>', '<row id>', {COLUMN => '<column family>:<column name>'}
次は HBase テーブルの特定 column を照会する例である。
hbase(main):010:0> get 'order', '101', {COLUMN => 'customer:name'}
COLUMN CELL
customer:name timestamp=1686908388954, value=John White
1 row(s)
Took 0.1450 seconds
delete - テーブルの特定 cell 削除
delete コマンドを使用して、テーブルの特定 cell を削除できる。delete コマンドの構文は次のとおりである。
delete '<table name>', '<row id>', '<column name>', '<timestamp>'
次は特定 cell を削除する例である。ここでは city を削除する。
hbase(main):011:0> delete 'order', '101', 'customer:city', 1686909532774
Took 0.0917 seconds
再度照会すると、前の put コマンドで変更した 'LA' 値が削除され、既存の 'Los Angeles' 値が再び表示されることがわかる。
hbase(main):012:0> get 'order', '101'
COLUMN CELL
customer:city timestamp=1686908392705, value=Los Angeles
customer:name timestamp=1686908388954, value=John White
sales:amount timestamp=1686908401071, value=400.00
sales:product timestamp=1686908398256, value=Chairs
1 row(s)
Took 0.2196 seconds
deleteall - テーブル row のすべての cell 削除
deleteall コマンドを使用して、row のすべての cell を削除できる。次は deleteall コマンドの構文である。
deleteall '<table name>', '<row id>'
次は order テーブルの 1 行のすべての cell を削除する deleteall コマンドの例である。
hbase(main):013:0> deleteall 'order','101'
Took 0.1271 seconds
hbase(main):015:0>
scan コマンドを使用してテーブルを確認する。テーブルデータを削除した後のスナップショットは次のとおりである。
hbase(main):015:0> scan 'order'
ROW COLUMN+CELL
0 row(s)
Took 0.0518 seconds
scan - データ照会
scan コマンドは HTable のデータを見るために使用される。scan コマンドを使用してテーブルデータを取得できる。構文は次のとおりである。
scan '<table name>'
まず次のようにデータを入れる。
put 'order', '101', 'customer:name', 'John White'
put 'order', '101', 'customer:city', 'Los Angeles'
put 'order', '101', 'sales:product', 'Chairs'
put 'order', '101', 'sales:amount', '400.00'
次の例では、scan コマンドを使用してテーブルからデータを照会している。
hbase(main):019:0> scan 'order'
ROW COLUMN+CELL
101 column=customer:city, timestamp=1686912065208, value=Los Angeles
101 column=customer:name, timestamp=1686912059341, value=John White
101 column=sales:amount, timestamp=1686912074891, value=400.00
101 column=sales:product, timestamp=1686912070718, value=Chairs
1 row(s)
Took 0.2649 seconds
count - データ数照会
count コマンドを使用して、テーブルの行数を数えることができる。構文は次のとおりである。
count ‘<table name>'
hbase(main):020:0> count 'order'
1 row(s)
Took 0.2992 seconds
=> 1
truncate - すべて削除
truncate コマンドは、テーブルを無効化、削除、再作成する。truncate の構文は次のとおりである。
truncate ‘<table name>'
次は truncate コマンドの例である。ここでは order テーブルを削除して再作成した。
hbase(main):021:0> truncate 'order'
Truncating 'order' table (it may take a while):
Disabling table...
Truncating table...
Took 5.6828 seconds
truncate でテーブルデータを削除した後、scan コマンドを使用して確認する。テーブルに行がないことを確認できる。
hbase(main):023:0> scan 'order'
ROW COLUMN+CELL
0 row(s)
Took 1.6790 seconds