让我知道我是否在此处发布了任何不正确的内容。(注意:KairosDB 位于 Cassandra 之上。使用 Hector)。
我正在使用 KairosDB Java 客户端将大量样本数据转储到数据存储中。我目前倾倒了 600 万,现在正尝试使用以下方法将其全部删除:
public static void purgeData(String metricsType, HttpClient c, int num, TimeUnit units){
try {
System.out.println("Beginning method");
c = new HttpClient("http://localhost:8080/api/v1/datapoints/delete");
QueryBuilder builder = QueryBuilder.getInstance();
System.out.println("Preparing to delete info");
builder.setStart(20, TimeUnit.MONTHS).setEnd(1, TimeUnit.SECONDS).addMetric(metricsType);
System.out.println("Attempted to delete info");
QueryResponse response = c.query(builder);
//System.out.println("JSON: " + response.getJson());
} catch (Exception e) {
System.out.println("Adding data points produced an error");
e.printStackTrace();
}
}
请注意,我删除了时间间隔参数只是为了尝试一次删除所有数据。
执行此方法时,似乎没有删除任何点。我选择使用 JSON 形式的数据卷曲查询,并收到一个 HectorException,说明“所有主机池都标记为已关闭。重试负担推给客户端”。
我个人的结论是,600 万太多了,不能一次删除。我正在考虑一次删除部分,但我不知道如何限制从 KDB Java 客户端删除的行数。我知道 KairosDB 用于生产。人们如何使用 Java Client 有效地删除大量数据?
非常感谢你花时间陪伴!