使用influxdb-java通过非默认保留策略查询度量值

时间:2019-11-14 07:17:00

标签: influxdb influxdb-2

我正在使用influxdb存储监视指标。我有一个带有多个度量值的数据库,并且附加了不同的保留策略。 度量A->保留策略rp1(默认); 度量B->保留策略rp2。

我正在使用influxdb-java客户端,并使用InfluxDBMapper和QueryBuilder。 我无法使用rp2查询测量B。我只能指定表名,在内部它采用默认RP,即rp1。

这是我建立查询的方式:

private Query buildQueryHelper(Query q, Clause c)
{
    if (q instanceof WhereQueryImpl)
    {
      q = ((WhereQueryImpl) q).and(c);
    } else
    {
      q = ((SelectQueryImpl) q).where(c);
    }

    return q;
}


Query q = null;


q = select().from("dbname", "B"); // at this point I have tried giving dbname.rp2.B using overridden function as from("dbname.rp2.B") but it throws IllegalStateException

if (StringUtils.isNonNullNonEmpty(req.getAccountId()))
{
    q = buildQueryHelper(q, eq(InfluxConstants.TAG_ACCOUNT_ID, req.getAccountId()));
}
if (StringUtils.isNonNullNonEmpty(req.getReqUUID()))
{
    q = buildQueryHelper(q, eq(InfluxConstants.TAG_REQ_UUID, req.getReqUUID()));
}
if (StringUtils.isNonNullNonEmpty(req.getUserId()))
{
    q = buildQueryHelper(q, eq(InfluxConstants.TAG_USER_ID, req.getUserId()));
} 


final List<B> result = influxDBMapper.query(q, B.class);

从流入日志中,我可以清楚地看到正在选择rp1。我应该如何使用QueryBuilder设置特定的保留策略?

0 个答案:

没有答案