分享

Hbase数据删除问题

hadroger 发表于 2015-2-9 13:07:31 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 13874
hbase中的数据删除,保证删除数据所占空间被释放,大家都是怎么实现的。比如只存30天的数据,每天凌晨删除最早一天的数据,应该怎么做,谢谢

已有(2)人评论

跳转到指定楼层
desehawk 发表于 2015-2-9 13:26:11
一、如何定期删除数据?使用表格级的属性:TTL(Time To Live),设置记录的有效期,当前时间超过记录有效期后该记录将被自动删除。记录的有效期 = TimeStamp + TTL;

二、如何在数据超过阈值时删除数据?比如我们限定某张表最多占用约1T的空间,当数据超过1T时就删除表中最老的一部分数据。
1、在HDFS层面,获取表格占用空间。通过Configuration实例创建FileSystem实例,调用Fs的getContentSummary(Path f)获取表格目录的ContentSummary实例,再调用getLength()便可获得该表格的大小。
2、若表格大小超过阈值,删除时间戳较小的一定量的记录。通过hbase api中scan的setTimeRange方法完成待删除的数据筛选,然后删之~


更多参考:

HBase实现记录定期定量删除

hbase数据删除不释放region解决办法

回复

使用道具 举报

hadroger 发表于 2015-2-11 11:28:13
谢谢您的回复
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条