我目前很难尝试使用Java client library从InfluxDB中删除带有特定标签的所有数据点。我的设置如下:
mbp
的数据库中retentionPolicy
的保留策略存储value_log
idref
由于我不使用默认保留策略,因此我使用完全限定的度量名称来解决查询中的这些数据点;否则查询将不起作用。通过以下查询,我可以选择所有感兴趣的数据点:
SELECT * FROM "mbp"."retentionPolicy"."value_log" WHERE idref='5c97dc2583aeb6078c5ab672'
在我的Java代码中,如下所示:
Query query = new Query("SELECT * FROM \"mbp\".\"retentionPolicy\".\"value_log\" WHERE idref='5c97dc2583aeb6078c5ab672'");
QueryResult result = influxDB.query(query);
现在,我正在寻找一种方法,使我可以删除上述查询返回的数据点。有很多SO问题解决了这一挑战,但是据我所知,这些问题都不使用完全合格的测量名称,这就是我遇到的问题。我尝试了很多不同的查询,但是要么抛出一个抱怨查询语法错误的异常,要么什么都没发生(没有删除数据点)。
到目前为止,我已经尝试过:
DELETE FROM "value_log" WHERE idref='5c97dc2583aeb6078c5ab672'
结果:什么都没发生
DELETE FROM "mbp"."retentionPolicy"."value_log" WHERE idref='5c97dc2583aeb6078c5ab672'
和
DELETE FROM "mbp"."value_log" WHERE idref='5c97dc2583aeb6078c5ab672'
结果:异常“不支持保留策略”
在代码方面,我使用了与上面的选择查询相同的方法,因此我创建了一个查询对象,并在InfluxDB实例上执行了该对象。我也尝试使用DROP SERIES
子句代替DELETE
,但是在每种情况下结果都保持不变。
有人知道我在做错什么或如何使它正常工作吗?非常感谢您的帮助。预先感谢!