table 被截断后,Hbase 从快照恢复 table

Hbase restore table from snapshot after the table is truncated

我按顺序执行了下面的语句:

hbase> snapshot 'table1', 'snap_table1'
hbase> disable 'table1'
hbase> truncate 'table1'
hbase> restore_snapshot 'snap_table1'
hbase> scan 'table1'

当我扫描表 1 时, 我有 0 行(基本上它有 108,415,618 行)

'snap_table1' 和 'table1' 发生了什么事?
另外,我在下面执行了。
table2恢复成功snap_table1

hbase> clone_snapshot 'snap_table1' , 'table2'

我是Hbase的新手,每天都在学习。
你能给我有关快照详细信息的资源以供研究吗?
谢谢!

删除 table 'table1' 而不是截断它。
restore_snapshot 来自 'snap_table1'
对我有用。

hbase> disable 'table1'
hbase> drop 'table1'
hbase> restore_snapshot 'snap_table1'

不知道truncate操作的秘密
但我想这是相同的结果。

我认为你应该尝试这样的事情:

snapshot 'TableName', 'SnapshotName'

... 删除旧的/创建新的/或截断 table,然后:

clone_snapshot 'SnapshotName', 'TableName'

此外,请记住,如果您只使用 truncate 命令,table 区域拆分结构将被破坏(即空的 table 将只有一个新的地区)。如果您想保留旧的区域结构,请改用 truncate_preserve。如果您想试验这些选项,请使用 describe 命令查看结果 tables 中的差异。