美文网首页HBase程序员技术文
HBase数据的删除和更新

HBase数据的删除和更新

作者: 虾米在海飘 | 来源:发表于2016-12-08 15:32 被阅读878次

当删除HBase中的数据,HBase会删除存储在HDFS上的数据,而Hadoop的Sequence File是一个顺序读写,批量处理的系统。那HBase怎么就能够查询到该记录,并更新和删除了数据呢?
答:HBase不会定位到需要删除或更新的记录进行操作。
由于HBase底层依赖HDFS,对于HBase删除操作来说,HBase无法在查询到之前的数据并进行修改,只能顺序读写,追加记录。那HBase只能追加记录了,为了更新或删除数据,HBase会插入一条一模一样的新的数据,但是key type会标记成Delete状态,以标记该记录被删除了。在读取的时候如果取到了是Delete,而且时间是最新的,那么这条记录肯定是被删掉了。


HFile存储格式

HFile的存储格式如图所示,每一个单元格或者KeyValue在HFile中的格式如下:
row length + row key + family length + column family + column qualifier + timestamp + key type
同样,进行更新操作的时候,也会重新插入一条新的数据来代替在原来数据上修改。新的数据的timestamp会大于老的数据,这样读取的时候,判断时间戳就可以取出最新的数据了。
由于HBase这样的删除和更新机制,如果后面没有一个对于过期数据处理的机制,会导致过期数据越来越大,因此后面的compact操作中的major compact就顺便将过期的数据删除掉了。
对于标记为删除的数据,直接删除。对于不同时间戳的多条数据,根据其保存的最大版本数据,删除过期的数据。当然做major compact的原因不仅仅能够删除过期数据,还有其他原因,比如合并数量过多的HFile,具体机制以后再分析。

参考:
http://blog.csdn.net/iam333/article/details/40431371
https://www.zhihu.com/question/21849618/answer/128580488

相关文章

  • HBase数据的删除和更新

    当删除HBase中的数据,HBase会删除存储在HDFS上的数据,而Hadoop的Sequence File是一个...

  • hbase的操作指南

    hbase的更新和删除,查询数据:1,首先编写一个hbase的工具类:/** HBase 工具类*/public ...

  • 六、HBase写入流程

    1、HBase写入流程 HBase服务端没有提供update,delete接口,HBase中对数据的更新、删除操作...

  • HBASE

    HBASE 讲一下hbase的各个组成成分及其作用? Hbase删除一条数据的过程? 在HBASE中master的...

  • 《SQL必知必会》—— 操作数据

    插入数据 更新数据 删除数据 创建表 更新表 删除表

  • Hbase--面试题整理-02

    01--hbase什么时候删除数据的 删除操作也并没有真正删除原有数据,只是插入了一条打上”deleted”标签的...

  • 经典Hbase面试7题(附答案)

    Hbase Hbase是怎么写数据的? HDFS和HBase各自使用场景 Hbase的存储结构 热点现象(数据倾斜...

  • Hbase 写入

    写入流程 HBase采用LSM树架构,天生适用于写多读少的应用场景。纯写入,没有更新和删除操作。所以更新和删除操作...

  • 你知道怎么解决DB读写分离,导致数据不一致问题吗?

    目录 前言 先更新数据库,再更新缓存 先更新缓存,再更新数据库 先删除缓存,再更新数据库 先更新数据库,再删除缓存...

  • tabelview操作(转)

    局部刷新方法 添加数据 删除数据 更新数据(没有添加和删除数据,仅仅是修改已经存在的数据) 左滑出现删除按钮 需要...

网友评论

    本文标题:HBase数据的删除和更新

    本文链接:https://www.haomeiwen.com/subject/tagdmttx.html