【大数据】Hbase如何批量删除指定数据
一、起因:
Hbase是一个列式存储,nosql类型的数据库,类似mongodb。
目前似乎没有提供批量删除的方法,只有一个单行删除的命令:deleteall 'tablename', rowkey
二、删除方法:
方法一:通过写 shell 脚本,从 hbase shell 查出需要删除的 rowkey ,拼成删除命令(deleteall 'tablename', rowkey),写到文本 del_temp.txt ;然后执行 hbase shell del_temp.txt
方法二:通过建映射表,比如在 hive 建一个映射表,然后写 hql 查出需要删除的 rowkey ,拼成删除命令(deleteall 'tablename', rowkey),写到文本 del_temp.txt ;然后执行 hbase shell del_temp.txt
方法三:通过 java 代码,调用 hbase 的单行删除方法,写个循环删除
方法四:通过建映射表,比如在 hive 建一个映射表,将 需要保留的数据 通过 hql 查询出来,备份到 hive 的一张临时表 ;然后 在hbase shell 里面 执行 truncate 'tablename' ,清空 hbase 的数据; 最后 在将数据 从 hive 的备份表 读出来,插入 映射表,写回 hbase;
总结:
前面3种方法,本质上都是在 hbase 中逐行删除;而第4种方法,是利用hive的map reduce倒数据。对于不熟悉 hbase 和 java 语法的开发人员而言,使用24方法,是灵活性最好的。
三、代码:
假设hbase有一张表,表名:test_turboway,列族:cf,以第二种删除方法为例:
1、hive 建映射表:
CREATE EXTERNAL TABLE edw.test_turboway_hbase(`keyid` string COMMENT 'from deserializer',`title` string COMMENT 'from deserializer',`bizdate` string COMMENT 'from deserializer',`loginid` string COMMENT 'from deserializer') ROW FORMAT SERDE'org.apache.hadoop.hive.hbase.HBaseSerDe' STORED BY'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ('hbase.columns.mapping'=':key,cf:title,cf:bizdate,cf:loginid','serialization.format'='1') TBLPROPERTIES ('COLUMN_STATS_ACCURATE'='false','hbase.table.name'='test_turboway','numFiles'='0','numRows'='-1','rawDataSize'='-1','totalSize'='0','transient_lastDdlTime'='1543297130')
2、记录hive查询要删除的数据,拼成命令:
hive -e "select concat('deleteall \'test_turboway\',\'',keyid,'\'') from edw.test_turboway_hbase where loginid = '20181122'" > del_temp.txt && echo 'exit' >> del_temp.txt
3、hbase shell 执行删除命令
hbase shell del_temp.txt > del.log
转载于:https://www.cnblogs.com/TurboWay/p/10193998.html
【大数据】Hbase如何批量删除指定数据相关推荐
- 【十】JDBC:使用 jmeter 批量在数据库创建 1 万多条数据;批量删除重复数据
目录 一.批量创建1万多条数据 二.批量删除重复数据 一.批量创建1万多条数据 数据库车辆信息表中准备10000多台车的数据: (1)创建线程组,循环1次: (2)连接数据池: (3)添加循环控制器, ...
- Mysql批量删除大量数据
一.Mysql批量删除大量数据 方案1 假设有一个表(syslogs)有1000万条记录,需要在业务不停止的情况下删除其中statusid=1的所有记录,差不多有600万条, 直接执行 DELETE ...
- Excel怎么删除指定数据单元格
今天小编跟大家分享一下Excel怎么删除指定数据单元格 1.如下图我们想要批量删除李松单元格 2.首先我们选择值日人员数据单元格区域 3.然后我们点击下图选项(Excel工具箱,百度即可了解详细下载安 ...
- mysql批量删除5000条数据_mysql批量删除大量数据
mysql批量删除大量数据 假设有一个表(syslogs)有1000万条记录,需要在业务不停止的情况下删除其中statusid=1的所有记录,差不多有600万条, 直接执行 DELETE FROM s ...
- layui框架数据表格的批量删除
layui框架数据表格的批量删除操作 此文献为layui框架的数据表格的批量删除,批量删除顾名思义就是把大量的数据进行删除操作 由于有点项目数据繁多,如果在要删除的时候一个一个的删除的话,就会很麻烦. ...
- MySQL 删除数据 批量删除(大量)数据
在删除数据的时候根据不同的场景使用不同的方法,比如说删除表中部分数据.删除表的结构.删除所有记录并重置自增ID.批量删除大量数据等,可以使用delete.truncate.drop等语句. 一.方法分 ...
- C# List集合查找删除指定数据
C# List集合查找删除指定数据 文章目录 1.实体类 2.操作第一个负荷条件数据 3.操作所有符合条件数据 4.优质源码 文章目录 1.实体类 public class FaultLevelMod ...
- mysql中如何大量删除数据_mysql批量删除大量数据的方法
mysql批量删除大量数据 假设有一个表(syslogs)有1000万条记录,需要在业务不停止的情况下删除其中statusid=1的所有记录,差不多有600万条, 直接执行 DELETE FROM s ...
- js数组删除指定数据方法
js数组删除指定数据方法 第一种:如果数据是一个一个添加进入数组中的 可以用pop来进行删除最后一个(可以用在upload上传判断是否符合等) let arrList = []; let arr = ...
- (WPS)Excel表格中批量删除指定字符
(WPS)Excel表格中批量删除指定字符 打开excel表格,选中需要删除的指定行或列的数据,键盘选择快捷键ctrl+H, ![比如要删除的字符是 ' ' 鼠标点击"全部替换", ...
最新文章
- 快手开源斗地主AI,入选ICML,能否干得过「冠军」柯洁?
- Flutter开发之认识Flutter(二)
- Win8.1 “运行”在Ipad Mini上
- 用ruby的net/ssh链接远程的服务器
- Go Web学习(2)——实现中间件(middleware)
- [Mac技巧]Mac下显示隐藏文件
- android子视图无菜单,Android 菜单详解
- wamp编写html页面空白,Win10安装wampserver后打开localhost出现空白怎么办
- 文件包含——php伪协议(五)
- error C4668: 没有将“_WIN32_WINNT_WIN10_TH2”定义为预处理器宏,用“0”替换“#if/#elif”
- Set和Map集合的比较
- c语言根据变量作用域不同分为,C语言中不同变量的访问方式
- (一)java版spring cloud+spring boot+redis多租户社交电子商务平台-简介
- java 运行scala_使用java命令运行scala代码
- 整除光棍 (20 分)
- Raspberry Pi车牌识别系统
- java jvm dump文件_各种获取JVM DUMP的方法
- 计算机网络是几级学科,教育部更新学科目录 “网络空间安全”增设为一级学科...
- cdr圆形渐变填充怎么设置_CDR渐变填充实例教程
- 数据库服务器,sql