美文网首页
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清理历史数据-使用TTL方法实现

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