028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

HBase误删数据怎么办

这篇文章主要介绍“HBase误删数据怎么办”,在日常操作中,相信很多人在HBase误删数据怎么办问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HBase误删数据怎么办”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

青岛网站建设公司创新互联,青岛网站设计制作,有大型网站制作公司丰富经验。已为青岛成百上千家提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的青岛做网站的公司定做!

有时候我们操作数据库的时候不小心误删数据,这时候如何找回?MySQL里有binlog可以帮助我们恢复数据,但是没有开binlog也没有备份就尴尬了。如果是HBase,你没有做备份误删了又如何恢复呢?

数据保护

当误删数据发生时候,不管三七二十一,***要务是进入hbase shell,执行如下命令:

HBase误删数据怎么办

如果误删一张表的有多个family里的数据,需要都执行一下:

alter 'tt', { NAME => 'f1', KEEP_DELETED_CELLS => TRUE }, { NAME => 'f2', KEEP_DELETED_CELLS => TRUE }

设置 KEEP_DELETED_CELLS 为 True 的目的在于防止数据被物理删除。这里有必要解释一下HBase清理数据的原理:

KEEP_DELETED_CELLS 的作用就是在major compaction发生的时候,决定要不要清理旧数据。这里需要注意一点,即便 KEEP_DELETED_CELLS 设置为True,数据仍然会因为过期而被清理(HBsae表中的TTL属性)。这个设定无可厚非,既然过期了,误删不误删也无所谓了。

数据恢复

数据恢复的前提数据没有被物理删除,也就是上文提及的。你只需要在查询(Scan)的时候,指定raw模式来搜索数据,就能看到被删除的数据,之后你要做就是把数据再写入一次。我们来看一个简单的例子,还是以hbase shell为例子:

1.首先我们准备几行数据

HBase误删数据怎么办

2.然后我们删掉y开头掉数据

HBase误删数据怎么办

3.查一下,现在只有3行了

HBase误删数据怎么办

4.现在我们带上raw再次查找数据,不仅能看到被删除数据,还能看到删除标记。

HBase误删数据怎么办

这里我设置了TIMERANGE, 指定的是数据写入的时间。对于我这个case其实并没有什么用,我只是想说明几点:

数据恢复完,建议关闭KEEP_DELETED_CELLS,节省空间,提高查询效率。

到此,关于“HBase误删数据怎么办”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


当前题目:HBase误删数据怎么办
当前网址:http://www.tsicrk.com/article/gijjcs.html

其他资讯

让你的专属顾问为你服务

4.6592s