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. 纯手写AJAX

    function ajax(){ //http相应对象 var xmlhttp; //判断浏览器 if(window.XMLHttpRequest){ xmlhttp = new XMLHttpReq ...

  2. 01 前言/基础设施 - DevOps之路

    01 前言/基础设施 - DevOps之路 文章Github地址,欢迎start:https://github.com/li-keli/DevOps-WiKi 简介 基础架构采用DevOps设计思想, ...

  3. 常见的web攻击手段总结

    xxs攻击(跨站脚本攻击) 攻击者在网页中嵌入恶意脚本程序,当用户打开该网页时脚本程序便在浏览器上执行,盗取客户端的cookie.用户名密码.下载执行病毒木马程 序 解决: 我们可以对用户输入的数据进 ...

  4. node express使用

    var express = require('express'); var app = express(); app 对象具有以下的方法: 路由HTTP请求:app.METHOD和app.param. ...

  5. 如何实现用将富文本编辑器内容保存为txt文件并展示

    1.实现思路 创建一个xx.txt文件,存放于项目路径下 用文件流去读取文件内容并将读取的内容存放到页面的富文本编辑器框内 富文本编辑框内容改变后,保存时用文件流的方式保存到xx.txt文件中 提示: ...

  6. Vue之小入门

    Vue之小入门 <div id="app">{{ greeting }}</div> <script> let oDiv = document. ...

  7. nginx强制使用https访问(http跳转到https)

    Nginx 的 Location 从零开始配置 - 市民 - SegmentFault 思否https://segmentfault.com/a/1190000009651161 nginx配置loc ...

  8. 移动端和PC端页面常用的弹出层

    我们在页面的时候,很多时候用到了弹出层,消息提醒,确认框等等,统一样式的弹出框可以使页面更加优美.在此,我整理一下我们项目的移动端和PC端页面常用的弹出层. 一.移动端 我们需在页面引入弹出框的样式和 ...

  9. vue-router的简单实现原理

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. vue的地图插件amap

    https://www.jianshu.com/p/0011996b81e2(amap) npm install vue-amap --save