美文网首页
hbase清理历史数据-使用TTL方法实现

hbase清理历史数据-使用TTL方法实现

作者: 彩色的炮灰 | 来源:发表于2023-02-22 14:06 被阅读0次

1、查看hbase表描述,看默认表默认:TTL => 'FOREVER'。
2、我们登录hbase:./hbase shell
3、使用命令修改TTL值:

alter 'table_name', NAME => 'name', TTL => 12960000(五个月)    (TTL单位为秒(s),例如2592000s=30天。)

4、此时我们再查看数据,5个月之前的数据已经在表中看不到了。
5、通过TTL的方式清理历史数据,但是alter执行后并不会立刻释放磁盘空间。需要等待压缩后才会释放磁盘空间,等待时间一般为:7天。但是可以通过可手动执行major compaction 后再观察下。操作方法:登陆hbase shell 然后执行:

balance_switch false  # 关闭region
major_compact 'history'
#major_compact 't1'  # Compact all regions in a table
# major_compact 'r1'  # Compact an entire region
# major_compact 'r1', 'c1'  # Compact a single column family within a region
# major_compact 't1', 'c1' # Compact a single column family within a table
balance_switch true # 开启region

6、手动执行major后,等待压缩完成磁盘空间即可释放完成。

二、下面是./hbase shell 相关总结
1、

scan 'test',{'LIMIT' => 1}  #查看表‘test’数据,只显示一行
scan 'test',{'LIMIT' => 1 ,REVERSED => TRUE} #查看表‘test’数据,只显示一行,且倒序
scan 'test',FILTER=>"PageFilter(1)"     #PageFilter :基于行的分页过滤器,设置返回行数
scan 'hbase:meta',{FILTER=>"PrefixFilter('test')"}       #hbase 获取分区信息
scan 'test',FILTER=>"ColumnPaginationFilter(2,1)"     #显示每行第1列之后的2个键值对
scan 'test',{STARTROW=>'102',STOPROW=>'103'}     #获取102/103的行数据
scan 'test',{TIMERANGE=>[1541731083994,1541731092771]}     #包含等于前面时间的数据,不含等于后面时间的数据
scan 'position_history',{'LIMIT' => 3,TIMERANGE=>[1650908732216,1652234493342]}  #示例

2、STARTROW
ROWKEY起始行。会先根据这个key定位到region,再向后扫描

  • 语法
    scan '表名', { STARTROW => '行键名'}
  • 示例
    scan 'position_history', { STARTROW => '2019' , 'LIMIT' => 1 }

3、ValueFilter 值过滤器

  • 语法:binary 等于某个值
    scan '', FILTER=>"ValueFilter(=,'binary:')"
  • 语法 substring:包含某个值
    scan '表名', FILTER=>"ValueFilter(=,'substring:列值')"
  • 示例
    scan 'position_history', FILTER=>"ValueFilter(=, 'binary:2022')"
    scan 'position_history', FILTER=>"ValueFilter(=, 'substring:2022-10-31')"

相关文章

  • hbase小技巧

    1.hbase ttl 机制基于timestamp,重置timestamp后,ttl设置的时间将出现错误简表语句 ...

  • ClickHouse MaterializedView TTL

    当我们在使用物化视图的时候,不可避免的也会遇到需要删除历史数据的需求。由于TTL的特性只支持MergeTree家族...

  • Hbase BulkLoad方式导入百亿级数据

    众所周知Hbase的BulkLoad是最快导入数据的方式,在导入历史数据的时候,我们一般会选择使用BulkLoad...

  • Hbase BulkLoad用法

    要导入大量数据,Hbase的BulkLoad是必不可少的,在导入历史数据的时候,我们一般会选择使用BulkLoad...

  • Hbase BulkLoad用法

    要导入大量数据,Hbase的BulkLoad是必不可少的,在导入历史数据的时候,我们一般会选择使用BulkLoad...

  • Hbase BulkLoad用法

    要导入大量数据,Hbase的BulkLoad是必不可少的,在导入历史数据的时候,我们一般会选择使用BulkLoad...

  • Hbase BulkLoad用法

    要导入大量数据,Hbase的BulkLoad是必不可少的,在导入历史数据的时候,我们一般会选择使用BulkLoad...

  • Hbase BulkLoad用法

    要导入大量数据,Hbase的BulkLoad是必不可少的,在导入历史数据的时候,我们一般会选择使用BulkLoad...

  • Hbase BulkLoad用法

    要导入大量数据,Hbase的BulkLoad是必不可少的,在导入历史数据的时候,我们一般会选择使用BulkLoad...

  • Hbase BulkLoad用法

    要导入大量数据,Hbase的BulkLoad是必不可少的,在导入历史数据的时候,我们一般会选择使用BulkLoad...

网友评论

      本文标题:hbase清理历史数据-使用TTL方法实现

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