【hbase】按时间段批量删除hbase数据

这篇具有很好参考价值的文章主要介绍了【hbase】按时间段批量删除hbase数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景是华为大数据平台mrs,这里运用到HDFS、Hive、HBase;数据通过接口接入到hbase,用hive创建hbase外部表。需求是某段时间数据有问题,需要删掉重新补入。

HBase删除操作

1 delete命令:删除某列数据
在HBase中,可以使用delete命令来将一个单元格的数据删除。
语法格式如下:delete '表名', 'rowkey', '列蔟:列'

2 deleteall命令:删除整行数据
deleteall命令可以将指定rowkey对应的所有列全部删除。
语法格式如下:deleteall '表名','rowkey'

3 truncate命令:清空表
truncate命令用来清空某个表中的所有数据。
语法:truncate "表名"

1、获取rowkey

方法1:通过hbase命令scan,TIMERANGE这个是通过数据的插入时间进行过滤

scan 'tablename',{ COLUMNS => 'f1:times',TIMERANGE => [1672502400000,1676304000000], LIMIT => 1, FORMATTER => 'toString'}

--LIMIT => 1:查看1条数据
--FORMATTER => 'toString':转换数据里的中文

方法2:通过hbase命令scan,ValueFilter这个是通过数据的值进行过滤

scan 'tablename',{ COLUMNS => 'f1:times',FILTER => "ValueFilter( >=, 'binary:2023-01-01')", LIMIT => 1, FORMATTER => 'toString'}

方法3:通过hive命令直接过滤查询出rowkey(最简单,前提是在hive创建了hbase外部表)

# 进入beeline,(华为mrs只能使用beeline,hive不可用)
beeline -u jdbc:hive2://hadoop1:10000/default

# 将结果导出HDFS
insert overwrite directory '/home/data/' select rowkey from hive_table;

# 数据下载到服务器本地
hadoop fs -get /home/data/000000_0 /tmp/date_20230214.txt

---------------------------------------------------------------------
# 直接将结果导出到本地,使用关键字local(这个方法在mrs没成功)
insert overwrite local directory '/home/data/' select rowkey from hive_table;

2、把rowkey拼接成hbase删除语句

方法1:使用hbase scan命令,整个流程封装到一个shell脚本中(我的数据rowkey中有中文和空格,所以最后执行结果只删掉了部分数据,并没有把想要的数据全删掉)

#!/bin/bash

touch /home/data/record.txt
touch /home/data/delete.sh

# #######第一步:通过时间戳找到要删除的数据
# 注:这里只有rowkey和其中一列,因为目的是找到rowkey
echo "scan 'tablename',{ COLUMNS => 'f1:times',FILTER => "ValueFilter( >=, 'binary:2023-01-01')", FORMATTER => 'toString'}" | hbase shell > /home/data/record.txt
# #######第二步:构建删除数据的shell
echo "#!/bin/bash " >> /home/data/delete.sh
echo "exec hbase shell <<EOF " >> /home/data/delete.sh
cat /home/data/record.txt | awk '{print "deleteall '\'$tablename\''", ",", "'\''"$1"'\''"}' tName="$tablename" >> /home/data/delete.sh
echo "EOF " >> /home/data/delete.sh
# #######第三步:执行删除shell
sh /home/data/delete.sh

方法2:使用hive命令可以直接拼接成hbase语句,但要把查询出来的结果中tablename和rowkey的替换成

select 'deleteall "tablename ,"'||rowkey ||'"' from hive_table where times >='2023-01-01';

使用hbase命令执行文件

hbase shell /tmp/date_20230214.txt

————————————————

相关资源:
Hbase删除指定时间段插入的数据
beeline 将查询的数据导出来_Hive数据导出的几种方式文章来源地址https://www.toymoban.com/news/detail-454031.html

到了这里,关于【hbase】按时间段批量删除hbase数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【华为OD机考 统一考试机试C卷】会议室占用时间段(C++ Java JavaScript Python C语言)

    目前在考C卷,经过两个月的收集整理, C卷真题已基本整理完毕 抽到原题的概率为2/3到3/3, 也就是最少抽到两道原题。 请注意:大家刷完C卷真题,最好要把B卷的真题刷一下,因为C卷的部分真题来自B卷。 另外订阅专栏还可以联系笔者开通在线OJ进行刷题,提高刷题效率。

    2024年02月01日
    浏览(43)
  • 【华为OD机考 统一考试机试C卷】查找接口成功率最优时间段(C++ Java JavaScript Python)

    2023年11月份,华为官方已经将 华为OD机考:OD统一考试(A卷 / B卷)切换到 OD统一考试(C卷)和 OD统一考试(D卷) 。根据考友反馈:目前抽到的试卷为B卷或C卷/D卷,其中C卷居多 ,按照之前的经验C卷部分考题会复用A卷,B卷题,博主正积极从考过的同学收集C卷和D卷真题。

    2024年01月15日
    浏览(39)
  • 【华为OD机考 统一考试机试C卷】查找接口成功率最优时间段(C++ Java JavaScript Python C语言)

    目前在考C卷,经过两个月的收集整理, C卷真题已基本整理完毕 抽到原题的概率为2/3到3/3, 也就是最少抽到两道原题。 请注意:大家刷完C卷真题,最好要把B卷的真题刷一下,因为C卷的部分真题来自B卷。 另外订阅专栏还可以联系笔者开通在线OJ进行刷题,提高刷题效率。

    2024年02月20日
    浏览(35)
  • SqlServer数据库定时清理数据,仅保留指定时间段内的数据——高效处理大数据

    SqlServer数据库定时清理数据,仅保留指定时间段内的数据——高效处理大数据 引言: 在日益增长的数据量下,保持数据库的健康状态变得尤为重要。对于大数据场景中的SqlServer数据库,一个常见的需求是定期清理过期数据,以便维护数据库性能、减小存储压力。本文将介绍

    2024年01月17日
    浏览(37)
  • MongoDB 按照时间段查询某个物理机的CPU使用率,按照时间倒序排序,取出最新的5条数据

    1、连接MongoDB 1)如果 没有设置用户名密码 ,命令如下: 2)如果 设置了用户名密码 (比如: ceilometer / password ),命令如下: 2、连接数据库 其中,ceilometer 是需要使用的数据库名。 3、执行查询 查询SQL如下: 其中, meter 是性能表名, physical.cpu.utilization 是指标名, times

    2024年02月15日
    浏览(35)
  • Python爬取东方财富网任意股票任意时间段的Ajax动态加载股票数据

    最近由于需求想爬取以下东方财富网的股票数据,但是发现没有想象那么简单,接下来我会讲述一下我遇到的问题以及是如何解决,最后成功的爬出了想要的数据。 首先我们F12打开东方财富网网页源码,以指南针(300803)为例: 我们先点击 网络 ,再点击 300803.html ,再选择右边

    2024年02月06日
    浏览(33)
  • 常用的时间段的时间戳

    获取 昨天这个时间的时间戳 计算今天0点的时间戳 计算今天23点59分59秒的时间戳 计算昨天0点的时间戳 计算昨天23:59:59 秒的时间戳 计算近7日 0点的时间戳(不包含当天) 计算近30天 0点的时间戳(不包含当天) 计算上月第一天 0点的时间戳 计算上月最后一天 23点的时间戳 计算上周

    2024年02月10日
    浏览(26)
  • 判断两个时间段是否有交集

    前言:项目中遇到了类似会议室预约的时间段被占用,预约车辆时间段被占用等。 start:预约开始时间。 end:预约结束时间。 必备条件:start = end 思考🤔: 怎么判断是否被占用呢? 预约的时间,与目标数据库中任意一条的存在交集,则可以视为占用。 有交集的情况有那几

    2024年02月03日
    浏览(54)
  • 获取两个时间段之间的年月

     //获取两个时间段之间的年月         getMonthBetween(start,end){               var result = [];               var s = start.split(\\\"-\\\");               var e = end.split(\\\"-\\\");               var min = new Date();               var max = new Date();               min.setFullYear(s[0],s[1]);          

    2024年03月21日
    浏览(55)
  • uniapp 实现时间段选择器

    u-popup结合picker-view搭配使用实现时间段选择器 效果图:  

    2024年02月15日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包