分享

HBase多版本与数据删除疑惑

Riordon 发表于 2016-10-13 10:16:43 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 29695
情景:HBase存储设备最近轨迹点数据,其中rowkey为设备类型-设备号,版本数设为3,单个设备的最新轨迹点每天估计要被更新上万次(也就是相同rowkey被put上万次)。
问题:上万次的更新是否会导致数据量剧增,超过版本数的数据是何时删除(或者根本就是修改)的呢?

数据流程:client --> WAL/Memstore ---> flush hfile  --> major compaction hfies

Delete操作可以认为是带标签的Put,真正的删除发生在major compaction ; 此带标签的Put是数据append还是update呢?
append的话是何时append的呢?compaction的时候? 它的物理存储位置排在相对应rowkey的前还是后?
update呢?

重复的Put操作,当超出version数时,后续的put是append还是update呢?
如果是append,那么数据是何时删除的呢?
update呢?

有点混乱了,还望大神不吝赐教!谢谢

已有(3)人评论

跳转到指定楼层
cloudcat 发表于 2016-10-13 11:25:43
你好,楼主,其实有些可以自己。按照我的了解。
hbase多版本可以设置,超过了版本,会删除旧版本数据。比如设置了10个版本,又来一个版本,第一个版本会被删除。你可以自己测试一下。

对于那种 delete,put,update 何种连续对一个rowkey操作,一定要注意。可以看看我总结的文章,我也遇到过hbase无法删除问题,最后解决了,希望对你有帮助
https://my.oschina.net/u/2293326/blog/750112
回复

使用道具 举报

Riordon 发表于 2016-10-13 13:52:23
cloudcat 发表于 2016-10-13 11:25
你好,楼主,其实有些可以自己。按照我的了解。
hbase多版本可以设置,超过了版本,会删除旧版本数据。比 ...

谢谢,刚刚问了一位大神,已解决。
1. HBase 中没有update的概念,所有delete操作、put操作都是append操作
2. 所有数据删除(delete、TTL过期、超过version)都是在major_compact时候执行的






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条