我需要根据时间范围来查询hbase表中的数据,如果rowkey用时间戳当前缀的话插入性能就会慢。我刚怎么样设计表结构?谁能提供一个实现方案吗?
1条回答
- 哎呀丶老张 2014-12-16 11:23关注
public List getRecentJobs(long time, int num) {
long timestamp = time < 0 ? 0 : TRACE_ROW_KEY_SEED - time;
String keyPrefix = StringUtils.leftPad("" + timestamp, 16, '0');
List list = new ArrayList();
HTableInterface table = null;
try {
table = this.getHTable(TABLE_JOB_TRACE);
byte[] startRow = BytesUtil.toBytes(keyPrefix + "00");
byte[] stopRow = BytesUtil.toBytes("zz");
Scan scan = new Scan(startRow, stopRow);
ResultScanner rs = table.getScanner(scan);int i = 0; for (Result r : rs) { String guid = BytesUtil.toString(r.getRow()); guid = StringUtils.right(guid, guid.length() - TRACE_ROW_KEY_SEED_LENGTH); String correlationId = BytesUtil.toString(r.getValue(CF_INFO, COL_CORRELATIONID)); String errorMessage = BytesUtil.toString(r.getValue(CF_INFO, COL_ERROR)); long finishTime = BytesUtil.toLong(r.getValue(CF_INFO, COL_FINISHTIME)); String name = BytesUtil.toString(r.getValue(CF_INFO, COL_NAME)); long startTime = BytesUtil.toLong(r.getValue(CF_INFO, COL_STARTTIME)); int status = BytesUtil.toInt(r.getValue(CF_INFO, COL_STATUS)); String callbackUrl = BytesUtil.toString(r.getValue(CF_INFO, COL_CALLBACK)); String task = BytesUtil.toString(r.getValue(CF_INFO, COL_TASK)); JobInstance instance = new JobInstance(); instance.setGuid(guid); instance.setCorrelationId(correlationId); instance.setErrorMessage(errorMessage); instance.setFinishTime(finishTime); instance.setName(name); instance.setStartTime(startTime); instance.setStatus(status); instance.setCallbackUrl(callbackUrl); instance.setTask(task); list.add(instance); i ++; if (i >= num) { break; } } return list; } catch (IOException e) { throw new BeyeException(510, e.getMessage(), e); } catch (NullPointerException e) { throw new BeyeException(404, e.getMessage(), e); } finally { try { table.close(); } catch (Exception ex) { } } }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 求帮我调试一下freefem代码
- ¥15 R语言Rstudio突然无法启动
- ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
- ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?
- ¥15 有偿求跨组件数据流路径图