当前位置: 首页 > news >正文

Java 写入 influxdb

利用Python随机生成一个1000行的csv文件

import csv
import random
from datetime import datetime, timedelta
from random import randint, choice# 定义监控对象列表和指标名称列表
monitor_objects = ['Server1', 'Server2', 'Server3', 'DB1']
metric_names = ['CPUUsage', 'MemoryUsage', 'DiskSpace', 'NetworkTraffic']# 生成随机日期范围,例如从今天开始往回计算一年的数据
start_date = datetime.now() - timedelta(days=365)
end_date = datetime.now()# 打开一个文件,准备写入
filename = 'random_data.csv'
with open(filename, mode='w', newline='', encoding='utf-8') as csvfile:fieldnames = ['dates', 'monitorObject', 'timeStamp', 'metricName', 'value']writer = csv.DictWriter(csvfile, fieldnames=fieldnames)# 写入表头writer.writeheader()# 生成并写入1000行数据for _ in range(10000000):# 随机日期random_date = start_date + (end_date - start_date) * random.random()date_str = random_date.strftime('%Y-%m-%d')time_stamp = int(random_date.timestamp())# 随机选择监控对象和指标名称monitor_object = choice(monitor_objects)metric_name = choice(metric_names)# 随机值,根据实际情况调整范围value = round(random.uniform(0, 100), 2)  # 假设值在0到100之间,保留两位小数# 写入一行数据writer.writerow({'dates': date_str,'monitorObject': monitor_object,'timeStamp': time_stamp,'metricName': metric_name,'value': value})print(f"CSV文件已成功生成,文件名为: {filename}")

利用Java写入inluxdb

package org.example;import com.csvreader.CsvReader;
import com.influxdb.client.InfluxDBClient;
import com.influxdb.client.InfluxDBClientFactory;
import com.influxdb.client.WriteApiBlocking;
import com.influxdb.client.domain.WritePrecision;
import com.influxdb.client.write.Point;import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;public class Main {static String token = "ZgpSCp3H_9liDB6v5POacJ8MOqnKOUR9YUlJjkIvLtFbYVyZr5Rkn-YKpUNdPqWpRKY_7Fqdwv6GN9r4A8BwcQ==";static String bucket = "data";static String org = "test";static InfluxDBClient client = InfluxDBClientFactory.create("http://localhost:8086", token.toCharArray());public static void main(String[] args) throws Exception {String CSV_FILE_PATH = "D:\\JAVA_dataAnalyze\\dataAnalyze\\src\\main\\java\\org\\example\\data\\random_data.csv";long startTime = System.currentTimeMillis();readCsv(CSV_FILE_PATH); // 方法1 串行写入long endTime = System.currentTimeMillis();System.out.println("excute time: " + (endTime - startTime) + "ms");startTime = System.currentTimeMillis();readCSVByMemory(CSV_FILE_PATH); // 方法2 stream流并行写入endTime = System.currentTimeMillis();System.out.println("excute time: " + (endTime - startTime) + "ms");}public static void readCsv(String CSV_FILE_PATH) throws Exception {CsvReader CSVReader = new CsvReader(CSV_FILE_PATH, ',', StandardCharsets.UTF_8);CSVReader.readHeaders();int rowNumber = 0;long startTime = System.currentTimeMillis();while (CSVReader.readRecord()) {// 安装mysql并引入MappingString content = CSVReader.getRawRecord();// 按照 dates,monitorObject,timeStamp,metricName,value 解析内容Point lineProtocol = row2InfluxPoint(content);//System.out.println(lineProtocol.toLineProtocol());point2InluxDB(lineProtocol);rowNumber++;if(rowNumber % 10000 == 0){long endTime = System.currentTimeMillis();System.out.println("rowNumber: " + rowNumber + "excute time: " + (endTime - startTime) + "ms");startTime = endTime;}}CSVReader.close();}public static  void readCSVByMemory(String CSV_FILE_PATH) throws Exception {CsvReader CSVReader = new CsvReader(CSV_FILE_PATH, ',', StandardCharsets.UTF_8);CSVReader.readHeaders();int rowNumber = 0;long startTime = System.currentTimeMillis();List<String> contentList =  new ArrayList<String>();while (CSVReader.readRecord()) {contentList.add(CSVReader.getRawRecord());}// 并行将contentList中的元素写入influxdbcontentList.stream().parallel().forEach(content -> {point2InluxDB(row2InfluxPoint(content));});
}public static Point row2InfluxPoint(String content) {String[] contentArray = content.split(",");Point point = Point.measurement("mem_data1T").addTag("monitorObject", contentArray[1]).addField(contentArray[3], Float.parseFloat(contentArray[4])).time(Long.parseLong(contentArray[2]), WritePrecision.S);return point;}public static void point2InluxDB(Point point){WriteApiBlocking writeApi = client.getWriteApiBlocking();writeApi.writePoint(bucket, org, point);}}
    <dependencies><dependency><groupId>net.sourceforge.javacsv</groupId><artifactId>javacsv</artifactId><version>2.0</version></dependency><dependency><groupId>com.influxdb</groupId><artifactId>influxdb-client-java</artifactId><version>6.6.0</version></dependency></dependencies>

相关文章:

Java 写入 influxdb

利用Python随机生成一个1000行的csv文件 import csv import random from datetime import datetime, timedelta from random import randint, choice# 定义监控对象列表和指标名称列表 monitor_objects [Server1, Server2, Server3, DB1] metric_names [CPUUsage, MemoryUsa…...

npm的基本命令和用法

1. 安装与初始化 安装npm 首先&#xff0c;确保你的系统中已安装了Node.js&#xff0c;因为npm随Node.js一同分发。访问Node.js官网下载并安装适合你操作系统的版本。安装完成后&#xff0c;在终端或命令提示符中输入以下命令来验证安装&#xff1a; 1$ node -v 2$ npm -v …...

Python 基于深度图、RGB图生成RGBD点云数据

RGBD点云生成 一、概述1.1 定义1.2 函数讲解二、代码示例三、结果示例一、概述 1.1 定义 RGBD点云:是一种包含颜色和深度信息的点云数据。RGB代表红、绿、蓝三原色,表示点云中每个点的颜色信息;D代表深度,表示点云中每个点的相对于相机的距离信息。通过结合颜色和深度信息…...

力扣刷题--LCR 075. 数组的相对排序【简单】

题目描述 给定两个数组&#xff0c;arr1 和 arr2&#xff0c; arr2 中的元素各不相同 arr2 中的每个元素都出现在 arr1 中 对 arr1 中的元素进行排序&#xff0c;使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。 …...

机器学习笔记——K近邻算法、手写数字识别

KNN算法 “物以类聚&#xff0c;人以群分”相似的数据往往拥有相同的类别 其大概原理就是一个样本归到哪一类&#xff0c;当前样本需要归到频次最高的哪个类去 也就是说有一个待分类的样本&#xff0c;然后跟他周围的k个样本来看&#xff0c;k中哪一个类最多&#xff0c;待分类…...

基于STM32实现智能园艺系统

目录 引言环境准备智能园艺系统基础代码示例&#xff1a;实现智能园艺系统 土壤湿度传感器数据读取水泵控制温湿度传感器数据读取显示系统用户输入和设置应用场景&#xff1a;智能农业与家庭园艺问题解决方案与优化收尾与总结 1. 引言 本教程将详细介绍如何在STM32嵌入式系统…...

网络原理-HTTP协议

HTTP协议 HTTP协议全称为超文本传输协议,除了能传输字符串,还能传输图片、视频、音频等。 当我们在访问网页的时候,浏览器会从服务器上下载数据,这些数据都会放在HTTP响应中,然后浏览器再根据这个HTTP响应显示出网页信息。 抓包 抓包工具本质上是一个代理工具,即我们将构造…...

【ES001】elasticsearch实战经验总结(最近更新中)

1.熟悉、梳理、总结下elasticsearch相关知识体系。 2.日常研发过程中使用较少&#xff0c;随着时间的推移&#xff0c;很快就忘得一干二净&#xff0c;所以梳理总结下&#xff0c;以备日常使用参考 3.欢迎批评指正&#xff0c;跪谢一键三连&#xff01; 文章目录 1. 1....

OpenBayes 一周速览|TripoSR 开源:1 秒即 2D 变 3D、经典 GTZAN 音乐数据集上线

公共资源速递 This Weekly Snapshots &#xff01;5 个数据集&#xff1a; FER2013 面部表情识别数据集 GTZAN 音乐流派分类数据集 MVTec-AD 工业异常检测数据集 UCAS-AOD 遥感目标检测数据集 Oxford 102 Flowers 花卉图片数据集 3 个教程&#xff1a; Latte 全球首个开…...

【论文笔记】advPattern

【论文题目】 advPattern: Physical-World Attacks on Deep Person Re-Identification via Adversarially Transformable Patterns Abstract 本文首次尝试对深度reID实施鲁棒的物理世界攻击。提出了一种新颖的攻击算法&#xff0c;称为advPattern&#xff0c;用于在衣服上生成…...

【鱼眼镜头11】Kannala-Brandt模型和Scaramuzza多项式模型区别,哪个更好?

Kannala-Brandt模型和Scaramuzza多项式模型在描述鱼眼相机畸变时都有其特定的数学表示和应用&#xff0c;但它们之间存在一些区别。以下是对两者区别的分点表示和归纳&#xff1a; 数学表示&#xff1a; Kannala-Brandt模型&#xff1a;它假设图像光心到投影点的距离和角度的多…...

微信小程序仿胖东来轮播和背景效果(有效果图)

效果图 .wxml <view class"swiper-index" style"--width--:{{windowWidth}}px;"><image src"{{swiperList[(cardCur bgIndex -1?swiperList.length - 1:cardCur bgIndex > swiperList.length -1?0:cardCur bgIndex)]}}" clas…...

10.SpringBoot 统一处理功能

文章目录 1.拦截器1.1在代码中的应用1.1.1定义拦截器1.1.2注册配置拦截器 1.2拦截器的作用1.3拦截器的实现 2.统一数据返回格式2.1 为什么需要统⼀数据返回格式&#xff1f;2.2 统⼀数据返回格式的实现 3.统一异常处理4.SpringBoot专业版创建项目无Java8版本怎么办&#xff1f;…...

【八股系列】为什么会有webpack配置?webpack的构建流程是什么?

文章目录 1. webpack是什么&#xff1f;2. 为什么需要webpack&#xff1f;3. webpack构建原理4. 构建流程通常包括以下步骤5. Webpack构建流程图 1. webpack是什么&#xff1f; Webpack是一个模块打包工具&#xff0c;它可以将项目中的各种静态资源&#xff0c;如JavaScript、…...

sdf 测试-2-openssl

任务详情 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务,参考网内容 和AI要给出详细过程&#xff0c;否则不得分。 0. 根据gmt0018标准&#xff0c;如何调用接口实现基于SM3求你的学号姓名的SM3值&#xff1f;&#xff08;5‘&#xff09; 使用OpenSSL实现SDF接…...

头歌springboot初体验

您好&#xff01;看起来您可能在询问关于Spring Boot的入门体验。Spring Boot是一个开源的Java框架&#xff0c;它设计用来简化Spring应用程序的初始搭建和开发过程。以下是一些Spring Boot的基本概念和入门步骤&#xff1a; Spring Boot简介&#xff1a; Spring Boot是Spring框…...

矩阵对角化在机器学习中的奥秘与应用

在机器学习的广阔领域中&#xff0c;矩阵对角化作为一种重要的数学工具&#xff0c;扮演着不可或缺的角色。从基础的线性代数理论到复杂的机器学习算法&#xff0c;矩阵对角化都在其中发挥着重要的作用。 矩阵对角化的概念与原理 矩阵对角化是矩阵理论中的一个基本概念&#x…...

操作MySQL数据库

【一】针对库的增删查改&#xff08;文件夹&#xff09; 【1】创建数据库 &#xff08;1&#xff09;语法 创建一个存储数据表的文件夹。 注意&#xff1a;mysql中的编码字符集中utf-8&#xff0c;要换成utf8mb4。SQL语句中的中括号部分表示可选。 create database [if no…...

Linux shell 文件生成文件脚本(模拟生成文件、生成大量文件)

文章目录 Linux shell 文件生成文件脚本 Linux shell 文件生成文件脚本 TARGET_DIR&#xff1a;生成文件路径 NUM_FILES&#xff1a;生成文件数量 FILE_SIZE&#xff1a;生成文件大小&#xff08;KB&#xff09; #!/bin/bashset -e set -u# Directory where files will be cr…...

theharvester一键收集域名信息(KALI工具系列十)

目录 1、KALI LINUX简介 2、theharvester工具简介 3、在KALI中使用theharvester 3.1 用搜索引擎扫描 3.2 扫描并输出结果 3.3 扫描某域名下的所有账号 3.4 使用所有的搜索引擎扫描 4、总结 1、KALI LINUX简介 Kali Linux 是一个功能强大、多才多艺的 Linux 发行版&…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题&#xff1a;阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程&#xff0c;导致后续逻辑无法执行&#xff1a; var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...

【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)

旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据&#xff01;该数据集源自2025年4月发表于《地理学报》的论文成果…...

Linux-进程间的通信

1、IPC&#xff1a; Inter Process Communication&#xff08;进程间通信&#xff09;&#xff1a; 由于每个进程在操作系统中有独立的地址空间&#xff0c;它们不能像线程那样直接访问彼此的内存&#xff0c;所以必须通过某种方式进行通信。 常见的 IPC 方式包括&#…...