首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >流入DB0.9-在Java驱动程序中指定持续时间

流入DB0.9-在Java驱动程序中指定持续时间
EN

Stack Overflow用户
提问于 2015-11-10 09:28:51
回答 2查看 458关注 0票数 0

我在InfluxDB中有一个关于保留策略和持续时间的问题。我正在使用InfluxDB编写时间数据。数据应该是从groovy中的某个文本文件中提取的,因此我使用了以下驱动程序来处理流入DB 0.9.4:

代码语言:javascript
运行
复制
   <dependency>
        <groupId>org.influxdb</groupId>
        <artifactId>influxdb-java</artifactId>
        <version>2.0</version>
    </dependency>

现在我可以插入数据(为此我使用BatchPoints ):

代码语言:javascript
运行
复制
BatchPoints batchPoints = BatchPoints
                    .database(dbName)
                    .tag("async", "true")
                    .retentionPolicy("default")
                    .consistency(InfluxDB.ConsistencyLevel.ALL)
                    .build()     

List<Point> points = obtainAllMyMeasurementsHere()
points.each {p ->
   batchPoints.point(p)
}
influxClient.write(batchPoints)

到目前为止还不错,但是现在我想在一周后自动删除我的观点。

据我所知,我需要使用保留策略和持续时间,但我不知道在java中的确切位置,我指定了这一点。看起来,流入db的java驱动程序的所有示例/测试都使用“默认”保留策略。

那么,有人能提供一个代码片段吗?我应该如何从Java驱动程序中创建一个保留策略?有可能吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-13 01:12:49

Influxdb java驱动程序没有创建保留策略规则的特殊API。相反,我们应该使用一个普通的org.influxdb.dto.Query,语法可能有点冗余(数据库名称在查询创建代码中出现两次,参见下面的代码)。

算法是:

  1. 使用以下代码(Groovy)在数据库上创建一个具有逻辑名称的保留策略:
代码语言:javascript
运行
复制
    String RETENTION_POLICY = "samplepolicy"
    String dbName = "sampledb"
    long ttl = 60 * 60 * 24 // one day ttl
    Query createRetentionPolicyQuery = new Query("CREATE RETENTION POLICY $RETENTION_POLICY ON $dbName DURATION ${ttl}s REPLICATION 1 DEFAULT", dbName)

    // create the policy:
    InfluxDB influxClient = createClient(...) // omitted for brevity

    QueryResult result = influxClient.query(createRetentionPolicyQuery)
        if(result.error != null) {
            throw new RuntimeException("Failed to create a retention policy on database $dbName. Reason: ${result.error}")
        }
  1. 现在,当创建保留策略时,可以插入数据。
代码语言:javascript
运行
复制
      BatchPoints batchPoints = BatchPoints
      .database(dbName)
      .tag("async", "true")
      .retentionPolicy(RETENTION_POLICY)
      .consistency(InfluxDB.ConsistencyLevel.ALL)
      .build()
票数 0
EN

Stack Overflow用户

发布于 2015-11-13 01:01:52

如果JavaDriver可以提交查询,只需在RP创建上读取并发送适当的查询,则使用查询创建保留策略。您还可以通过CLI或curl直接将查询提交给curl

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33626714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档