public int clearTableByTableName(String tableName) throws Exception {
logger.debug("======InitHbaseServiceImpl clearTableByTableName=======");
int count = 0;
List<HBaseRow> rowsList = hbaseUtil.getRowsByStartAndEnd(tableName, null, null, HBaseConsts.FILTER_RECORD_COUNT);
count += deleteData(tableName, rowsList, 0); //解决返回查找第一条为前一页最后一条数据
while (rowsList.size() == HBaseConsts.FILTER_RECORD_COUNT) {
String startKey = rowsList.get(rowsList.size() - 1).getRowKey();
rowsList.clear();
try {
rowsList = hbaseUtil.getRowsByStartAndEnd(tableName, startKey, null, HBaseConsts.FILTER_RECORD_COUNT);
} catch (Exception e) {
logger.error("==========获取" + tableName + "数据异常==========");
}
count += deleteData(tableName, rowsList, 1);
if (rowsList.size() < HBaseConsts.FILTER_RECORD_COUNT) {
break;
}
}
return count;
} /**
* 删除数据
*
* @param tableName
* @param rowsList
* @param startIdx
* @throws Exception
*/
private int deleteData(String tableName, List<HBaseRow> rowsList, int startIdx) throws Exception {
logger.debug("=======deleteData rowsList:{}========", rowsList.size());
int successCount = 0;
for (int i = startIdx; i < rowsList.size(); i++) {
HBaseRow baseRow = rowsList.get(i);
String rowKey = baseRow.getRowKey();
try {
hbaseUtil.deleteRow(tableName, rowKey);
successCount++;
} catch (Exception e) {
logger.error("=====清数据出现异常bug=====");
throw new InvokeException(ResultEnum.FAILED.getCode(), "清数据出现异常bug");
} }
logger.debug("==========deleteData========本次删除成功数据:{}", successCount);
return successCount;
}

HBase 清空表数据的更多相关文章

  1. Sqlite清空表数据以及重新设置主键操作

    Sqlite清空表数据以及重新设置主键操作 delete from 表名; //清空数据 update sqlite_sequence SET seq = 0 where name ='表名';//自 ...

  2. mysql清空表数据并重置自增ID

    mysql清空表数据并重置自增ID: ## 查看mysql> select * from work_order_company;mysql> show create table work_ ...

  3. oracle 清空表数据的2种方式及速度比较

            1.情景展示 现在,需要清空该表数据 2.实现方式 为了比较删除速度,对该表进行复制 确认复制的表和原来的表数据是否一致 方式一:使用truncate table实现 方式二:使用de ...

  4. SQLite 如何清空表数据并将递增量归零

    SQLite并不支持TRUNCATE TABLE语句 方式一: DELETE FROM [Tab_User] --不能将递增数归零 方式二: DELETE FROM sqlite_sequence W ...

  5. MySQL删除语句比较,清空表数据,重置自增长索引

    drop truncate delete 程度从强到弱 1.drop table tbdrop将表格直接删除,没有办法找回 2.truncate (table) tbtruncate 删除表中的所有数 ...

  6. 统计Azure存储的HBase各表数据量

    场景:HBase存储在Azure上,现在通过访问Azure Storage的接口,获取HBase中各个表的数据量. 注意: 1.Azure存储,默认的副本数为2,即共存3份,但只收1份的费用,取到的s ...

  7. Sqlite清空表数据

    delete from TableName; //清空数据 where name ='TableName';//自增长ID为0

  8. MySQL快速清空表数据

    truncate table 可以不删除表的情况下,快速情况表数据

  9. 清空表数据 mysql让主键从1开始

    TRUNCATE TABLE name 删除表中的所有行,而不记录单个行删除操作.

随机推荐

  1. OO博客作业3:第9-11周作业总结

    一.总结介绍规格化设计的大致发展历史和为什么得到了人们的重视 1.规格化设计的大致发展历史 规格化设计,又称契约式设计,最早由Bertrand Meyer于1986年提出,出自于<面向对象软件构 ...

  2. Python_装饰器习题_31

    # 1.编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件), # 要求登录成功一次,后续的函数都无需再输入用户名和密码 FLAG = False def login(func): def ...

  3. redis中的hash、列表、集合操作

    一.hash操作 数据结构:key:{k1:v1, k2:v2, k3:v3} 类似Python中的字典 如:info : {name: lina, age: 22, sex: F} hset key ...

  4. PAT L2-023 图着色问题

    https://pintia.cn/problem-sets/994805046380707840/problems/994805057298481152 图着色问题是一个著名的NP完全问题.给定无向 ...

  5. 微信小程序开发的基本流程

    微信小程序开发的基本流程 一,微信小程序简介 1,微信小程序简称小程序,张小龙在微信公开课 Pro 上发布的小程序正式上线,时间是2017年1月9日. 2,微信小程序这个词可以分解为“微信”和“小程序 ...

  6. VSCode 汉化

    https://jingyan.baidu.com/article/7e44095377c9d12fc1e2ef5b.html

  7. CART算法与剪枝原理

    参考:https://blog.csdn.net/u014688145/article/details/53326910 知乎:https://www.zhihu.com/question/22697 ...

  8. mysql 如何查看sql语句执行时间和效率

    查看执行时间 1 show profiles; 2 show variables;查看profiling 是否是on状态: 3 如果是off,则 set profiling = 1: 4 执行自己的s ...

  9. drf信号量

    Django信号量回顾及drf信号量常用操作 一.在写接口视图时,保存/删除/更新数据前后需要对序列化后的数据进行处理的方法: 1.重写mixins.CreateModelMixin中恩的create ...

  10. 让PC端页面在手机端显示缩小版的解决方法

    做页面的时候我们做好pC端页面时,因编辑那边需求,在手机端页面也应该是缩小版,不能乱的.在网上找了各种解决方案,经实验,这种是可以的: 在head里边加上这两句meta  <meta name= ...