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

python读取influxdb中数据

示例代码一:从infludb中获取指定时间段time和value值,并作图保存

from influxdb_client import InfluxDBClient
import matplotlib.pyplot as plt# InfluxDB连接信息
url = "http://localhost:8086"
token = "your_token"
org = "your_org"
bucket = "your_bucket"# 创建InfluxDB客户端
client = InfluxDBClient(url=url, token=token, org=org)# 查询数据
query = f'from(bucket: "{bucket}") |> range(start: -10m)'
result = client.query_api().query(query)# 提取time和value
time = []
value = []
for table in result:for record in table.records:time.append(record.get_time().timestamp() % 600)  # 将time转换为以秒为单位,取模600,record.get_time().timestamp()获取时间戳value.append(record.values["_value"])# 绘制图表
plt.plot(time, value)
plt.xlabel('Time (s)')
plt.ylabel('Value')
plt.title('InfluxDB Data')
plt.savefig('influxdb_data.png')
plt.show()

示例代码二:从infludb中获取指定时间段最大值、最小值、平均值等信息

from influxdb_client import InfluxDBClient, Point
from influxdb_client.client.write_api import SYNCHRONOUS
from influxdb_client import query_api
from datetime import datetimetoken = "your_influxdb_token"
org = "your_influxdb_organization"
bucket = "your_influxdb_bucket"
url = "your_influxdb_url"client = InfluxDBClient(url=url, token=token, org=org)query = f'from(bucket:"{bucket}") |> range(start: 2022-01-01T00:00:00Z, stop: 2022-01-02T00:00:00Z) |> filter(fn: (r) => r._measurement == "measurement_name") |> aggregateWindow(every: 1h, fn: mean, createEmpty: false)'result = client.query_api().query(org=org, query=query)mean_value = result[0].records[0].values['_value']
max_value = max([record.values['_value'] for record in result[0].records])
min_value = min([record.values['_value'] for record in result[0].records])print("平均值:", mean_value)
print("最大值:", max_value)
print("最小值:", min_value)

aggregateWindow是InfluxDB的查询函数之一,用于在时间窗口内对数据进行聚合计算。它的基本语法如下:

aggregateWindow(every: duration, fn: aggregateFunction, createEmpty: boolean)
参数说明:
- `every`:指定时间窗口的持续时间,可以使用InfluxDB的持续时间字符串表示,例如"1h"表示1小时,"10m"表示10分钟。
- `fn`:指定聚合函数,可以是以下之一:- `count`:计算数据点的数量。- `sum`:计算数据点的总和。- `mean`:计算数据点的平均值。- `median`:计算数据点的中位数。- `min`:计算数据点的最小值。- `max`:计算数据点的最大值。- `mode`:计算数据点的众数。- `stddev`:计算数据点的标准差。- `first`:获取时间窗口内的第一个数据点。- `last`:获取时间窗口内的最后一个数据点。
- `createEmpty`:指定是否在时间窗口内没有数据点时创建空数据点,可选值为`true`或`false`。在上面的代码示例中,`aggregateWindow`函数被用于计算时间窗口内数据的平均值。根据示例中的查询语句,时间窗口的持续时间为1小时,聚合函数为`mean`,并且在时间窗口内没有数据点时不创建空数据点。你可以根据自己的需求选择不同的聚合函数和时间窗口的持续时间来实现不同的聚合计算。
http://www.lryc.cn/news/170243.html

相关文章:

  • 【网络编程】UDP Socket编程
  • [GIT]版本控制工具
  • Linux文件管理命令
  • Netty面试题(三)
  • risc-v dv源代码分析
  • C语言基础语法复习07-c语言关键字的解释
  • 阿里巴巴全店商品采集教程,阿里巴巴店铺所有商品接口(详解阿里巴巴店铺所有商品数据采集步骤方法和代码示例)
  • Android 白天黑夜模式设置
  • FFMpeg zoompan 镜头聚焦和移动走位
  • 利用hutool工具类实现验证码功能
  • 前端面试题: 请解释什么是函数的作用域?
  • 华为云云服务器云耀L实例评测 | 华为云云服务器实例新品全面解析
  • Nginx配置SSL证书
  • 一,安卓aosp源码编译环境搭建
  • video 视频编解码一些debug方法
  • 中秋国庆假期——模板推荐
  • 【配代码演示】Cookie和Session的区别
  • 【Linux初阶】信号入门2 | 信号阻塞、捕捉、保存
  • 【已解决】:该该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)“按钮获取它的所有权。否则,请按“取消(C)“按钮以防损坏。
  • 系统架构常用的工具
  • 腾讯云2核4G服务器5M带宽 218元一年 优惠价格明细表
  • [C++ 网络协议] 多播与广播
  • IOS17正式版今日发布
  • 2560. 打家劫舍 IV
  • java web中部署log4j.xml
  • 【张兔兔送书第一期:考研必备书单】
  • 基于Spring Boot+ Vue的健身房管理系统与实现
  • ThreadLocal线程局部变量
  • C++ Primer (第五版)第一章习题部分答案
  • Python与GUI集成:零基础也能开发国际象棋游戏