更新时间:2024-12-10 GMT+08:00
删除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);
}
父主题: 开发OpenTSDB应用