一:时序数据库-Influx应用

目录

0、版本号

1、登录页面

2、账号基本信息

3、数据库案例

4、可视化

5、java案例


0、版本号

InfluxDB v2.4.0

1、登录页面

http://127.0.0.1:8086/signin

账号:自己账号 密码:自己密码

2、账号基本信息


查看用户id和组织id!!很重要 需要在作为参数请求接口

3、数据库案例

4、可视化

5、java案例

1、pom

java 复制代码
       <dependency>
            <groupId>com.influxdb</groupId>
            <artifactId>influxdb-client-java</artifactId>
            <version>6.11.0</version>
        </dependency>

2、初始化WriteApiBlocking

java 复制代码
import com.influxdb.client.InfluxDBClientFactory;
import com.influxdb.client.WriteApiBlocking;
import com.influxdb.client.domain.WritePrecision;
import org.chameleon.threadpool.monitor.PoolCollectData;

import java.util.List;

public class InfluxdbAssign {

    private final WriteApiBlocking writeApi;

    public InfluxdbAssign() {
        writeApi = InfluxDBClientFactory.create(Constant.INFLUXDB_URL,
                Constant.INFLUXDB_TOKEN,
                Constant.INFLUXDB_ORG,
                Constant.INFLUXDB_BUCKET).getWriteApiBlocking();
    }

3、写入

java 复制代码
package example;

import java.time.Instant;
import java.util.List;

import com.influxdb.annotations.Column;
import com.influxdb.annotations.Measurement;
import com.influxdb.client.InfluxDBClient;
import com.influxdb.client.InfluxDBClientFactory;
import com.influxdb.client.QueryApi;
import com.influxdb.client.WriteApiBlocking;
import com.influxdb.client.domain.WritePrecision;
import com.influxdb.client.write.Point;
import com.influxdb.query.FluxRecord;
import com.influxdb.query.FluxTable;

public class InfluxDB2Example {

    private static char[] token = "my-token".toCharArray();
    private static String org = "my-org";
    private static String bucket = "my-bucket";

    public static void main(final String[] args) {

        InfluxDBClient influxDBClient = InfluxDBClientFactory.create("http://localhost:8086", token, org, bucket);

        //
        // 获取写的api
        //
        WriteApiBlocking writeApi = influxDBClient.getWriteApiBlocking();

        //
        // 写数据point的方式
        //
        Point point = Point.measurement("temperature")
                .addTag("location", "west")
                .addField("value", 55D)
                .time(Instant.now().toEpochMilli(), WritePrecision.MS);

        writeApi.writePoint(point);

        //
        // Write by协议的方式写
        //
        writeApi.writeRecord(WritePrecision.NS, "temperature,location=north value=60.0");

        //
        // Write by 对象的方式写!!!推荐
        //
        Temperature temperature = new Temperature();
        temperature.location = "south";
        temperature.value = 62D;
        temperature.time = Instant.now();

        writeApi.writeMeasurement( WritePrecision.NS, temperature);

        //
        // Q查询数据
        //
        String flux = "from(bucket:\"my-bucket\") |> range(start: 0)";

        QueryApi queryApi = influxDBClient.getQueryApi();

        List<FluxTable> tables = queryApi.query(flux);
        for (FluxTable fluxTable : tables) {
            List<FluxRecord> records = fluxTable.getRecords();
            for (FluxRecord fluxRecord : records) {
                System.out.println(fluxRecord.getTime() + ": " + fluxRecord.getValueByKey("_value"));
            }
        }

        influxDBClient.close();
    }

    对应的POJO
    @Measurement(name = "temperature")
    private static class Temperature {

        @Column(tag = true)
        String location;

        @Column
        Double value;

        @Column(timestamp = true)
        Instant time;
    }
}
相关推荐
wuyu112514 分钟前
Qt字符编码
数据库·mysql·mybatis
许灵均均1 小时前
数据库视图
数据库
engchina2 小时前
Neo4j数据库清理指南:如何安全地删除所有节点和索引
数据库·neo4j
Erorrs3 小时前
Android13 系统/用户证书安装相关分析总结(二) 如何增加一个安装系统证书的接口
android·java·数据库
许苑向上4 小时前
最详细【Elasticsearch】Elasticsearch Java API + Spring Boot集成 实战入门(基础篇)
java·数据库·spring boot·elasticsearch
CodeCraft Studio5 小时前
【实用技能】在 SQL Server 中使用 LIMIT 子句的替代方案
数据库·sql·sqlserver
jlting1956 小时前
HiveSQL 中判断字段是否包含某个值的方法
数据库·sql
求一个好offer拜托拜托6 小时前
SQL常见语法
数据库·sql
喵手6 小时前
PostgreSQL 增量备份:保护你的数据资产
数据库·postgresql
cliffordl6 小时前
SQLAlchemy 介绍与实践
数据库·python