python 操作influxdb数据库获取数据

本文介绍了如何使用Python操作InfluxDB数据库获取数据。InfluxDB是一个开源的时序数据库,专注于时间序列数据的存储。文章详细讲解了InfluxDB的基本原理,如tag、field和timestamp,并提供了环境准备、数据表结构和数据插入的说明。文中还展示了Python代码封装示例,用于查询磁盘使用率等系统监控数据,并讨论了是否需要像MySQL、Oracle那样关闭连接的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python 操作influxdb数据库获取数据

前言

InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。特色功能包括
1、基于时间序列,支持与时间有关的相关函数
2、可度量性:你可以实时对大量数据进行计算
3、基于事件:它支持任意的事件数据

原理

1)tag–标签,在InfluxDB中,tag是一个非常重要的部分,表名+tag一起作为数据库的索引,是“key-value”的形式。

2)field–数据,field主要是用来存放数据的部分,也是“key-value”的形式。

3)timestamp–时间戳,作为时序型数据库,时间戳是InfluxDB中最重要的部分,在插入数据时可以自己指定也可留空让系统指定。

说明:在插入新数据时,tag、field和timestamp之间用空格分隔。

4)series–序列,所有在数据库中的数据,都需要通过图表来展示,而这个series表示这个表里面的数据,可以在图表上画成几条线。

5)Retention policy–数据保留策略,可以定义数据保留的时长,每个数据库可以有多个数据保留策略,但只能有一个默认策略。。

6)Point–点,表示每个表里某个时刻的某个条件下的一个field的数据,因为体现在图表上就是一个点,于是将其称为point。

环境准备

安装influxdb数据库就不细说。直接说python和influxdb的交互。

pip install influxdb==5.2.0

influxdb数据库表

在这里插入图片描述

上代码

操作influxdb数据库代码进行封装如下:

from influxdb import InfluxDBClient

import pytz
import time
import dateutil.parser
import datetime


class DBApi(object):
    """
    通过infludb获取数据
    """

    def __init__(self, ip, port):
        """
        初始化数据
        :param ip:influxdb地址
        :param port: 端口
        """
        self.db_name = 'system'
        self.use_cpu_table = 'cpu_summary' # cpu使用率表
        self.phy_mem_table = 'mem'# 物理内存表
        self.traffic_table = 'net'# 接收流量表
        self.disk_table = 'disk'# 磁盘表
        self.swap_table = 'swap' # 交换分区表
        self.client = InfluxDBClient(ip, port, '', '', self.db_name)  # 连接influxdb数据库

说明

influxdb.InfluxDBClient(host=u'localhost', port=8086, username=u'root', password=u'root', database=None, ssl=False, verify_ssl=False, timeout=None, retries=3, use_udp=False, udp_port=4444, proxies=None)
参数

host (str) – 用于连接的InfluxDB主机名称,默认‘localhost’

port (int) – 用于连接的Influxport端口,默认8086

username (str) – 用于连接的用户名,默认‘root’

password (str) – 用户密码,默认‘root’

database (str) – 需要连接的数据库,默认None

ssl (bool) – 使用https连接,默认False

verify_ssl (bool
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值