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. itoa函数实现

    1.      整数字符转化为字符串数 // 将整数转换成字符串数,不用函数itoa // 思路:采用加'0',然后在逆序的方法 #include <iostream> using nam ...

  2. Spring.profile配合Jenkins发布War包,实现开发、测试和生产环境的按需切换

    前两篇不错 Spring.profile实现开发.测试和生产环境的配置和切换 - Strugglion - 博客园https://www.cnblogs.com/strugglion/p/709102 ...

  3. [编程笔记]第一章 C语言概述

    //C语言学习笔记 第一讲 C语言概述 第二讲 基本编程知识 第三讲 运算符和表达式 第四讲 流程控制 第五讲 函数 第六讲 数组 第七讲 指针 第八讲 变量的作用域和存储方式 第九讲 拓展类型 第十 ...

  4. java对象的四种引用:强引用、软引用、弱引用和虚引用

    在JDK1.2之前,创建的对象只有在处于可触及(reachable)的状态下,才能被程序使用.也就是说,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.垃圾回收器一旦发现这些无用对象,就会对 ...

  5. Tomcat 目录结构以及基本配置

    1 Tomcat 目录层次结构 ① bin:存放启动和关闭tomcat 的脚本文件② conf: 存放配置文件 server.xml:该文件用于配置和server 相关的信息,比如tomcat 启动端 ...

  6. PL/SQL如何调试sql语句、存储过程

    一直以来,我总是在sql的工具,比如sql server.navicat等中执行sql语句来发现问题自己写的sql中的问题,结果被问起时,让人贻笑大方! 那么如何调试成白行的存储过程?如何调试成百行s ...

  7. NOIP2015提高组复赛B 子串

    题目链接:https://ac.nowcoder.com/acm/contest/263/B 题目大意: 略 分析: 设preA(i)为字符串A中第1个字符到第i个字符构成的字符串. 设preB(i) ...

  8. 在python中定义二维数组

    发表于 http://liamchzh.0fees.net/?p=234&i=1 一次偶然的机会,发现python中list非常有意思. 先看一段代码 [py]array = [0, 0, 0 ...

  9. 21.PHP实现Word/Excel/PPT转换为PDF

    参考文档: https://www.cnblogs.com/woider/p/7003481.html http://blog.csdn.net/aoshilang2249/article/detai ...

  10. css多列居中

    https://jingyan.baidu.com/article/36d6ed1f67d58f1bcf488393.html