間違って投稿した場合は、ここにお知らせください。(注: 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 クライアントを使用して大量のデータを効果的に削除するにはどうすればよいですか?
ありがとうございました!