Python读取influxDB数据库(二)(influxDB2.X版本)

2024-04-23 05:36

本文主要是介绍Python读取influxDB数据库(二)(influxDB2.X版本),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 1. influxDB连接

首先在浏览器中输入influxDB的IP和端口,然后输入账号密码进入到influxDB数据库来进行数据的相关操作:

里面的bucket相当于sql中的数据库,_measurement相当于sql中的表

 2. 获取influxDB数据库的token方法

3. 写查询语句来查询数据

然后和平时写sql查询语句一样,先创建连接client,然后调用其query函数来查询获取数据

from (bucket: "bt")

              |> range(start: 2024-04-01T15:16:21Z, stop: 2024-04-02T15:16:21Z)
              |> filter(fn: (r) => r["_measurement"] == "monitor")
              |> filter(fn: (r) => r["d"] == "102519")
              |> filter(fn: (r) => r["c"] == "10")
              |> filter(fn: (r) => r["i"] == "1")


4. 完整代码(code)

import yaml
from params import pool_num
import os
import time
from pathlib import Path
import influxdb_client
from params import influx_host, influx_port
import pandas as pdfrom utils.logger import Logos_file_name = Path(__file__).nameclass InfluxInfo(object):def __init__(self):passdef influx_conn(self):  # 读取的influxdb库地址url = "http://" + influx_host + ":" + str(influx_port)  # 安装时的配置参数中查找org = "test_org"  # 安装时的配置参数中查找token = "my_token"  # 获取方式见图片self.client = influxdb_client.InfluxDBClient(url=url, token=token,  org=org)def query_data(self, table_name, expression, begin_time, end_time):self.influx_conn()query_api = self.client.query_api()bucket = "bt"dev, cg, id = expression.split("_")query_sql = f"""from (bucket: "{bucket}") \|> range(start: {begin_time}, stop: {end_time}) \|> filter(fn: (r) => r["_measurement"] == "{table_name}") \|> filter(fn: (r) => r["d"] == "{dev}") \|> filter(fn: (r) => r["c"] == "{cg}") \|> filter(fn: (r) => r["i"] == "{id}")"""tables = query_api.query(query=query_sql)# data_csv = query_api.query_csv(query=query_sql)self.client.close()returndata = pd.DataFrame()if len(tables) > 0:table = tables[0]records = table.recordsif len(records) > 0:timelist = []  #expression_list = []dev_list = []cg_list = []id_list = []valuelist = []for record in records:r = record.valuestimestr = r['_time'].strftime("%Y-%m-%d %H:%M:%S")timelist.append(timestr)dev_list.append(r['d'])cg_list.append(r['c'])id_list.append(r['i'])expression_list.append("_".join([r['d'], r['c'], r['i']]))valuelist.append(r['_value'])if len(timelist) > 0:returndata = pd.DataFrame({'time': timelist, 'expression': expression_list, 'dev': dev_list,'cg': cg_list, 'id': id_list, 'value': valuelist})return returndataif __name__ == '__main__':begin_time = '2024-04-01T15:16:21Z'end_time = '2024-04-02T15:16:21Z'expression = "102519_10_1"query_rslt = InfluxInfo().query_data("monitor", expression, begin_time, end_time)

这篇关于Python读取influxDB数据库(二)(influxDB2.X版本)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/927916

相关文章

Python实现终端清屏的几种方式详解

《Python实现终端清屏的几种方式详解》在使用Python进行终端交互式编程时,我们经常需要清空当前终端屏幕的内容,本文为大家整理了几种常见的实现方法,有需要的小伙伴可以参考下... 目录方法一:使用 `os` 模块调用系统命令方法二:使用 `subprocess` 模块执行命令方法三:打印多个换行符模拟

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

从入门到进阶讲解Python自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习

Python 字典 (Dictionary)使用详解

《Python字典(Dictionary)使用详解》字典是python中最重要,最常用的数据结构之一,它提供了高效的键值对存储和查找能力,:本文主要介绍Python字典(Dictionary)... 目录字典1.基本特性2.创建字典3.访问元素4.修改字典5.删除元素6.字典遍历7.字典的高级特性默认字典

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

Python自动化批量重命名与整理文件系统

《Python自动化批量重命名与整理文件系统》这篇文章主要为大家详细介绍了如何使用Python实现一个强大的文件批量重命名与整理工具,帮助开发者自动化这一繁琐过程,有需要的小伙伴可以了解下... 目录简介环境准备项目功能概述代码详细解析1. 导入必要的库2. 配置参数设置3. 创建日志系统4. 安全文件名处

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法