hbase用于保存设备采集的数据,一个租户一个表,查询也是直接自从hbase中取数据
查询场景为,查询某设备多测点某时间范围数据
(1)重新设计hbase表:
(2) 查询时,指定列族,start/endRow,尽量通过rowkey查询过滤数据,减少filllter的使用
(3) 将scan缓存从100增大到500或者1000,用以减少RPC次数
Spring boot 版本 2.5.1
hbase-client 1.3.0
1)用URI表示1种资源,只用名词表示资源,不要动作;
2)用http动作表示对资源的操作: get 查询; post insert put 更新; delete 删除
3)用http状态码表示结果
util+controller
@RequestMapping(value = "/scanData",method = RequestMethod.POST)
public R findDataBytags( @RequestBody String json) {
JSONObject object = JSONObject.parseObject(json);
String startTime = object.getString("startTime");// "2020-10-01 00:00:00";
Map<String, Object> dataMap = findByid()
return R.ok().put("data",dataMap);
}
Scan scan = new Scan();//若没有指定startRow以及stopRow,则全表扫描
scan.setStartRow .setStopRow
scan.setReversed(true);
scan.addColumn("fdata".getBytes(), cloumnlist.get(i).getBytes());
scanner = table.getScanner(scan);
Get g = new Get(Bytes.toBytes(rk));
Result result = table.get(g);