SpringBoot连接测试InfluxDB时序数据库

news/2024/11/30 0:09:47/

1)创建一个Springboot项目,在pom.xml引入influxDB相关的包

<!-- influxdb --><dependency><groupId>org.jetbrains.kotlin</groupId><artifactId>kotlin-stdlib</artifactId><version>1.8.10</version> <!-- 可以使用最新的稳定版本 --></dependency><dependency><groupId>org.influxdb</groupId><artifactId>influxdb-java</artifactId><version>2.22</version> <!-- 确保使用支持的版本 --></dependency><dependency><groupId>com.influxdb</groupId><artifactId>influxdb-client-java</artifactId><version>6.6.0</version></dependency>

2)application.yml添加配置信息

influxdb:url: http://127.0.0.1:8017username: rootpassword: wz1123456token: vHqPBS1IPKo6ydzh-c5mqXnJn0h1HgHhbeD5M94BTRC0V49422iPyq3c6Vj9MYmamk3EjcivbtkqvwYPqigY3Q==bucket: wzadministratororg: wz_influxdb

3)新建InfluxDBConfig.java文件

@Configuration
public class InfluxDBConfig {@Value("${influxdb.url}")private String url;@Value("${influxdb.token}")private String token;@Value("${influxdb.org}") // 组织名称private String org;@Value("${influxdb.bucket}") // 存储桶名称private String bucket;@Beanpublic InfluxDBClient influxDBClient() {return InfluxDBClientFactory.create(url, token.toCharArray(), org, bucket);}
}

4)自动化测试InfluxDBDataReader.java,以插入数据为例,DevPointFiveSeDayShard类为实体类,自定义


@Component
public class InfluxDBDataReader {String realTimePre = "REA:";String recentTimePre = "REC:";@Autowiredprivate MongoTemplate mongoTemplate;@Autowiredprivate JedisPool jedisPool;private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");private static final DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy_MM_dd_HH_mm_ss");// 在你的类中添加 ObjectMapper 的实例@Autowiredprivate ObjectMapper objectMapper;@Autowiredprivate DevPointForMongoDBService devPointForMongoDBService;@Autowiredprivate InfluxDBClient influxDBClient;@Value("${influxdb.bucket}")private String bucket;@Value("${influxdb.org}")private String org;/*** 定时任务启动,每隔5s,统一在AllAutoReader类中启动*/
//    @EventListener(ApplicationReadyEvent.class)
//    @Scheduled(fixedRate = 5000)
//    @PostConstructpublic void runInfluxDB() {insertDevToInfluxDB();}public void insertDevToInfluxDB(){try{List<DevPointFiveSeDayShard> devPointFiveList = RandomlyGeneratEntityCongfig.GenerateEntity(30000);List<Point> points = new ArrayList<>();WriteApiBlocking writeApi = influxDBClient.getWriteApiBlocking();for (DevPointFiveSeDayShard data : devPointFiveList) {// 创建一个 Point 对象Point point = Point.measurement("devPoint2") // measurement 名称.addTag("productId", data.getProductId()) // tag.addField("variableId", data.getVariableId()) // Field.addField("calcValue", data.getCalcValue()) // field.addField("errType", data.getErrType()) // field.time(data.getReportDateTime(), WritePrecision.MS); // 设置时间戳,单位为纳秒points.add(point);}// 插入数据System.out.println("Writing points to bucket: " + bucket);long startTime = System.currentTimeMillis();writeApi.writePoints(points);long endTime = System.currentTimeMillis();System.out.println(LocalDateTime.now().format(formatter) + "存储InfluxDB数据耗时:" + (endTime - startTime) + "ms" + "存储量:" + devPointFiveList.size());System.out.println("points插入完成==");}catch (Exception e){e.printStackTrace();}}
}

其他操作见官网文档:InfluxDB OSS v2 Documentation


http://www.ppmy.cn/news/1551035.html

相关文章

【ANC系统】主动噪声控制系统结构分类

1. 根据是否获取参考信号划分 前馈 ANC 系统&#xff08;Feedforward ANC&#xff09; 原理&#xff1a;前馈 ANC 系统的基本工作原理是利用参考信号来生成反噪声。参考信号通常是由传感器检测到的“初级噪声”信号&#xff0c;系统在噪声发生之前就进行干预。参考信号通常是直…

从 App Search 到 Elasticsearch — 挖掘搜索的未来

作者&#xff1a;来自 Elastic Nick Chow App Search 将在 9.0 版本中停用&#xff0c;但 Elasticsearch 拥有你构建强大的 AI 搜索体验所需的一切。以下是你需要了解的内容。 生成式人工智能的最新进展正在改变用户行为&#xff0c;激励开发人员创造更具活力、更直观、更引人入…

Git工作原理与常用方法汇总

Git的工作原理 Git是一种分布式版本控制系统&#xff0c;其工作原理包括以下几个关键步骤&#xff1a; 工作区&#xff08;Working Directory&#xff09;&#xff1a;你在本地的项目目录&#xff0c;包含所有项目文件。暂存区&#xff08;Staging Area&#xff09;&#xff…

天锐绿盾加密软件与Ping32联合打造企业级安全保护系统,确保敏感数据防泄密与加密管理

随着信息技术的飞速发展&#xff0c;企业在日常经营过程中产生和处理的大量敏感数据&#xff0c;面临着越来越复杂的安全威胁。尤其是在金融、医疗、法律等领域&#xff0c;数据泄漏不仅会造成企业巨大的经济损失&#xff0c;还可能破坏企业的信誉和客户信任。因此&#xff0c;…

【文档搜索引擎】实现索引构建——解析标题、解析URL、解析正文

文章目录 实现索引构建解析标题getName () 和 getAbsolutePath () 的区别截掉 .html完整代码逻辑 解析 URL实现 URL 拼接完整代码逻辑测试代码 解析正文实现思路读取内容操作的实现完整代码逻辑测试代码 实现索引构建 一条搜索信息&#xff0c;就包含了标题、描述、展示 URL。这…

【Leetcode Top 100】234. 回文链表

问题背景 给你一个单链表的头节点 h e a d head head&#xff0c;请你判断该链表是否为 回文链表&#xff08;回文 序列是向前和向后读都相同的序列&#xff09;。如果是&#xff0c;返回 t r u e true true&#xff1b;否则&#xff0c;返回 f a l s e false false。 数据…

《Python基础》之函数、模块与库

目录 简介 一、函数 1、数学类函数 2、聚合类函数 3、和进制相关的函数 4、字符类函数 5、类型转换相关函数 6、获取输出类函数 二、模块与库的使用方法 1、模块和库的导入方法 2、第三方模块的下载 下载方法 简介 在Python编程的世界中&#xff0c;函数、模块和库是…

深入解析音视频流媒体SIP协议交互过程

一、引言 在音视频流媒体传输过程中&#xff0c;SIP&#xff08;Session Initiation Protocol&#xff09;协议发挥着举足轻重的作用。本文将详细全面地介绍音视频流媒体传输中的SIP协议&#xff0c;包括其基本概念、交互过程、关键信令以及应用场景 二、SIP协议基本概念 1.…