删除OpenTSDB数据
功能简介
在OpenTSDB的查询接口中增加delete参数,并且设置delete参数为true。
函数genQueryReq()生成删除请求,函数deleteData()把删除请求发送到OpenTSDB服务端。
样例代码
以下代码片段在com.huawei.bigdata.opentsdb.examples包的“OpentsdbExample”类的deleteData方法中。
样例代码获取方式请参考获取MRS应用开发样例工程。
代码样例:
public void deleteData(String dataPoint) { QUERY_URL = BASE_URL + dataPoint; try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpPost httpPost = new HttpPost(QUERY_URL);addTimeout(httpPost); String deleteRequest = genDeleteReq(); StringEntity entity = new StringEntity(deleteRequest, "utf-8"); entity.setContentType("application/json"); httpPost.setEntity(entity); HttpResponse response = httpClient.execute(httpPost); int statusCode = response.getStatusLine().getStatusCode(); LOG.info("Status Code : " + statusCode); if (statusCode != HttpStatus.SC_OK) { LOG.info("Request failed! " + response.getStatusLine()); } } catch (IOException e) { LOG.error("Failed to delete data.", e); } } static class Query { public Long start; public Long end; public boolean delete = false; public List<SubQuery> queries; } static class SubQuery { public String metric; public String aggregator; public SubQuery(String metric, String aggregator) { this.metric = metric; this.aggregator = aggregator; } } String genQueryReq() { Query query = new Query(); query.start = 1498838400L; query.end = 1498921200L; query.queries = ImmutableList.of(new SubQuery("city.temp", "sum"), new SubQuery("city.hum", "sum")); Gson gson = new Gson(); return gson.toJson(query); } String genDeleteReq() { Query query = new Query(); query.start = 1498838400L; query.end = 1498921200L; query.queries = ImmutableList.of(new SubQuery("city.temp", "sum"), new SubQuery("city.hum", "sum")); query.delete = true; Gson gson = new Gson(); return gson.toJson(query); }