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 pd

from utils.logger import Log

os_file_name = Path(__file__).name


class InfluxInfo(object):
    def __init__(self):
        pass

    def 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.records
            if len(records) > 0:
                timelist = []  #
                expression_list = []
                dev_list = []
                cg_list = []
                id_list = []
                valuelist = []
                for record in records:
                    r = record.values
                    timestr = 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 returndata


if __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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/564226.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

新火种AI|号称“史上最强大开源模型”的Llama3,凭什么价值百亿美金?

作者:小岩 编辑:彩云 4月19日,Facebook母公司Meta重磅推出了Llama3。 即便大家现在对于大厂和巨头频繁迭代AI模型的行为已经见怪不怪,Meta的Llama3仍旧显得与众不同,因为这是迄今最强大的开源AI模型。 Meta推出了重…

Redis从入门到精通(二十一)Redis最佳实践(二)mset、pipeline、慢查询优化、内存划分

文章目录 前言7.2 批处理优化7.2.1 命令执行流程7.2.2 mset7.2.3 Pipeline7.2.4 集群下的批处理7.2.4.1 问题与解决方案7.2.4.2 基于Spring的串行化执行 7.3 服务器端优化7.3.1 持久化配置7.3.2 慢查询优化7.3.2.1 什么是慢查询7.3.2.2 如何查看慢查询 7.3.3 命令及安全配置7.3…

智慧安防边缘计算硬件AI智能分析网关V4算法启停的操作步骤

TSINGSEE青犀视频智能分析网关V4内置了近40种AI算法模型,支持对接入的视频图像进行人、车、物、行为等实时检测分析,上报识别结果,并能进行语音告警播放。硬件管理平台支持RTSP、GB28181协议、以及厂家私有协议接入,可兼容市面上常…

MySQL 基础语法(2)

文章目录 创建表查看表修改表表数据插入 本文为表结构相关的基础语言库相关的基础语句 创建表 CREATE TABLE table_name ( field1 datatype comment xxx, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;CREATE TABLE&#xff1…

算法竞赛相关问题总结记录

前言 日常在校生或者是工作之余的同学或多或少都会参加一些竞赛,参加竞赛一方面可以锻炼自己的理解与实践能力,也能够增加自己的生活费,竞赛中的一些方案也可以后续作为自己论文的base,甚至是横向课题的框架。在算法竞赛中算法的差别个人感觉差距都不大&…

创建一个空的maven项目,整合SpringBoot和Redis

创建一个空的maven项目,整合SpringBoot和Redis 创建空的maven项目 在最新版的idea中创建maven项目的时候会让选择模板 如下图: 我们选择quickstart快速开始模板,quickstart快速开始模板创建的maven项目里面什么都不带,只有一个…

便携式手提万兆网络协议测试仪

便携式手提万兆网络协议测试仪 平台简介 便携式手提万兆网络协议测试仪,以FPGA万兆卡和X86主板为基础,构建便携式的手提设备。 FPGA万兆卡是以Kintex-7XC7K325T PCIeX4的双路万兆光纤网络卡,支持万兆网络数据的收发和网络协议的定制设计。 …

微服务之.SpringCloud AlibabaSentinel实现熔断与限流

一、概述 1.1介绍 Sentinel是阿里巴巴开源的一款服务保护框架,目前已经加入SpringCloudAlibaba中。官方网站: 官网https://sentinelguard.io/zh-cn/ 从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开…

计算机服务器中了locked勒索病毒怎么办,locked勒索病毒解密工具流程步骤

随着网络技术的不断应用与发展,越来越多的企业离不开网络,网络大大提升了企业的办公效率水平,也为企业的带来快速发展,对于企业来说,网络数据安全成为了大家关心的主要话题。近日,云天数据恢复中心接到多家…

注意libaudioProcess.so和libdevice.a是不一样的,一个是动态链接,一个是静态

libaudioProcess.so是动态链接,修改需要改根文件系统,需要bsp重新配置 libdevice.a是静态链接,直接替换就行 动态链接文件修改 然后执行fw_update.sh

JAVA学习笔记29(集合)

1.集合 ​ *集合分为:单列集合、双列集合 ​ *Collection 接口有两个重要子接口 List Set,实现子类为单列集合 ​ *Map接口实现子类为双列集合,存放的King–Value ​ *集合体系图 1.1 Collection接口 1.接口实现类特点 1.collection实现…

射频识别技术助力产品分拣:提升效率与准确性

射频识别技术助力产品分拣:提升效率与准确性 RFID技术在产品分拣中具有重要的应用,它利用射频信号进行非接触式的自动识别,能够高效、准确地完成产品分拣工作。 在产品分拣中,RFID技术的主要应用方式是在产品上粘贴RFID电子标签&…

阿里云mysql8.0 this is incompatible withsql mode=only full group by

阿里云RDS中mysql5.6升级为8.0后,出现如下问题: ### Error querying database. Cause:java.sql.SQLSyntaxErrorException: Expression #1 of SELECT listis not in GROUP BY clause and contains nonaggregatedcolumn temp.product_id which is not fun…

电商平台数据有哪些(淘宝1688京东API)?如何进行电商平台数据分析?(内附测试方式)

电商平台数据是一个庞大且复杂的体系,涵盖了多个维度和类型。在淘宝、1688、京东等电商平台中,数据主要分为以下几个类别: 用户数据:包括用户属性(如年龄、性别、地域、职业等)、用户行为(如浏…

本地环境测试

1. 在 Anaconda Navigator 中,打开 Jupyter Notebook ,在网页中,点击进入本地环境搭建中创 建的工作目录,点击右上角的 New- 》 Folder ,将新出现的 Untitled Folder 选中,并使用左上角 的 Rename 按钮重…

CSS基础常用属性之字体属性(如果想知道CSS的字体属性知识点,那么只看这一篇就足够了!)

前言:在我们学习CSS的时候,主要学习选择器和常用的属性,而这篇文章讲解的就是最基础的属性之一——文字属性。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 废话不多说,让我们直…

STP学习的第一篇

1.STP的基本概念:根桥 (1)STP的主要作用之一是在整个交换网络中计算出一棵无环的“树”(STP树)。 (2)根桥是一个STP交换网络中的“树根”。 (3)STP开始工作后&#xf…

Hack The Box-Runner

总体思路 子域名扫描->CVE-2023-42793利用->获取敏感信息->user->端口转发->CVE-2024-21626利用->root 信息收集&端口利用 nmap -sSVC 10.10.11.13目标开放22、80、8000端口,这里先将runner.htb加入到hosts文件后,访问之 查看源…

一文读懂链游!探索链游的前世今生,区块链与游戏结合的新兴趋势

区块链技术的崛起给游戏行业带来了前所未有的变革,而链游(Blockchain Games)正是这一变革的产物。本文将带您一览链游的前世今生,探索区块链与游戏结合的新兴趋势。 1. 链游的起源 链游,顾名思义,是指利用…

DAPP的商业模型创新: 探索可持续盈利路径

去中心化应用(Decentralized Applications,DAPPs)作为区块链技术的重要应用之一,在近年来蓬勃发展。然而,随着市场竞争的加剧和用户需求的不断变化,DAPP开发者们面临着寻找可持续盈利路径的挑战。本文将探讨…