HBase Shell の Snapshot に関する操作方法です。
Snapshotコマンド
コマンド | 説明 |
---|---|
snapshot | スナップショットを取得する。 |
list_snapshots | スナップショットの一覧を確認する。 |
restore_snapshot | スナップショットを元のテーブルに復元する。 |
clone_snapshot | スナップショットから別のテーブルを作成する。 |
delete_snapshot | スナップショットを削除する。 |
delete_all_snapshot | 全てのスナップショットを削除する。 |
Apache HBase ™ HBase Snapshots
コマンド詳細
snapshot
スナップショットを取得するテーブルとスナップショット名を指定します。デフォルトではスナップショットが作成される前にフラッシュが実行されるので、メモリ内のデータがスナップショットに含まれますが、SKIP_FLUSH
オプションを付けるとフラッシュが無効になります。
snapshot 'namespace:sourceTable', 'snapshotName', [{SKIP_FLUSH => true}]
-- EXAMPLE > snapshot 'test', 'test_snapshot_20160310' 0 row(s) in 1.2920 seconds
list_snapshots
スナップショットの一覧を取得する際には正規表現のフィルターを使用できます。引数を省略した場合は全てのスナップショットが取得されます。
list_snapshots 'regex'
-- EXAMPLE > list_snapshots 'test_s.*' SNAPSHOT TABLE + CREATION TIME test_snapshot_20160310 test (Sun Mar 27 16:53:14 +0900 2016) 1 row(s) in 0.0680 seconds => ["test_snapshot_20160310"]
restore_snapshot
スナップショットを元のテーブルに復元するには、スナップショット名を指定するのみです。
restore_snapshot 'snapshotName'
ただし事前に復元対象のテーブルをdisable
コマンドで使用不可の状態にする必要があります。復元したあとはenable
コマンドで使用可能に戻しましょう。
-- EXAMPLE > disable 'test' 0 row(s) in 1.4790 seconds > restore_snapshot 'test_snapshot_20160310' 0 row(s) in 3.2760 seconds > enable 'test' 0 row(s) in 1.3780 seconds
clone_snapshot
スナップショットから取得元とは別のテーブルを作成します。
clone_snapshot 'snapshotName', 'namespace:tableName'
-- EXAMPLE > clone_snapshot 'test_snapshot_20160310', 'test_clone' 0 row(s) in 1.0700 seconds > scan 'test_clone' ROW COLUMN+CELL row1 column=cfamily1:v1, timestamp=1459066275045, value=hoge 1 row(s) in 0.0310 seconds
delete_snapshot
スナップショットが必要なくなったら削除します。
delete_snapshot 'snapshotName'
-- EXAMPLE > delete_snapshot 'test_snapshot_20160310' 0 row(s) in 1.0700 seconds > list_snapshots 'test_s.*' SNAPSHOT TABLE + CREATION TIME 0 row(s) in 0.1750 seconds => []
delete_all_snapshot
復数のスナップショットを削除できます。引数を省略することはできないので、全てのスナップショットを削除したい場合はdelete_all_snapshot '.*'
で可能です。
delete_all_snapshot 'regex'
> delete_all_snapshot 'test.*' SNAPSHOT TABLE + CREATION TIME test_table1_snapshot test_table1 (Sun Mar 27 16:25:23 +0900 2016) test_table2_snapshot test_table2 (Sun Mar 27 16:26:14 +0900 2016) Delete the above 2 snapshots (y/n)? y 0 row(s) in 0.1520 seconds 2 snapshots successfully deleted.