influxdb时序库之Python操作

使用Python操作influxdb时序库

1. 安装三方库

注意区分版本,不同的 influxdb 版本对应安装不同的三方库。

influxdb V1:pip install influxdb

influxdb V2:pip install influxdb-client

以下代码都是基于 influxdb 2.4 版本进行操作。

2. 实例化client对象

python 复制代码
from datetime import datetime
from influxdb_client import InfluxDBClient, Point, WritePrecision
from influxdb_client.client.write_api import SYNCHRONOUS

token = "H9GXI_bvLHkbRWBR1bYZVZlm5_b282iSDU6EpfxL2tbux6Qp6jcpQqxLpp01KE6EZIdWGkpoMS_PoHe-I-jaDg=="
org = "influx_test"
bucket = "example_dbquery"

# 实例化influxdb client对象,建立连接
db_client = InfluxDBClient(url="http://192.168.1.6:8086", token=token, org=org)
# 写操作
write_api = db_client.write_api(write_options=SYNCHRONOUS)
# 读操作
query_api = db_client.query_api()

3. 写操作

Data Point 方式写数据时,要注意 field 对应的数据类型为int 还是 double.

python 复制代码
# 写操作
write_api = db_client.write_api(write_options=SYNCHRONOUS)

# 方式1. 行协议方式写数据
data = 'car,code=01 rate=38,temp=26'
write_api.write(bucket, org, data)

# 方式2. 数据点方式写数据
point = Point("car") \
    .tag("code", "01") \
    .field("rate", 39.2).field("temp", 28.5) \
    .time(datetime.utcnow(), WritePrecision.NS)
write_api.write(bucket, org, point)

# 方式3. 批量行协议方式写数据
sequence = [
    'car,code=01 rate=40,temp=25',
    'car,code=02 rate=45,temp=30',
]
write_api.write(bucket, org, sequence)

4. 查数据

influxdb版本不同,查询语句也不一样,以下基于 influxdb 2.4 实现。

python 复制代码
# 读操作
query_api = db_client.query_api()

query_info = 'from(bucket: "example_dbquery") |> range(start: -1h)'
tables = query_api.query(query_info, org=org)       # 相当于查到的所有序列,(_measurement + tag + _field 为一组series,即一组序列)

for tb in tables:
    print(f"---------tb: {tb}")
    for record in tb.records:           # 循环每个序列中的每条记录,即每个point
        print(record)

5. 关闭连接

db_client .close()

相关推荐
保定公民25 分钟前
达梦数据库使用cp备份集恢复报错分析与解决
数据库
独行soc33 分钟前
2025年渗透测试面试题总结-275(题目+回答)
网络·python·安全·web安全·网络安全·渗透测试·安全狮
中冕—霍格沃兹软件开发测试2 小时前
测试用例库建设与管理方案
数据库·人工智能·科技·开源·测试用例·bug
The star"'2 小时前
mysql(4-7)
数据库·mysql·adb
番石榴AI2 小时前
java版的ocr推荐引擎——JiaJiaOCR 2.0重磅升级!纯Java CPU推理,新增手写OCR与表格识别
java·python·ocr
时光轻浅,半夏挽歌2 小时前
python不同格式文件的读写方式(json等)
python·json
jiayong233 小时前
Redis面试深度解析
数据库·redis·面试
思成不止于此3 小时前
【MySQL 零基础入门】DQL 核心语法(四):执行顺序与综合实战 + DCL 预告篇
数据库·笔记·学习·mysql
测试人社区-千羽3 小时前
边缘计算场景下的智能测试挑战
人工智能·python·安全·开源·智能合约·边缘计算·分布式账本
抽象带篮子3 小时前
Pytorch Lightning 框架运行顺序
人工智能·pytorch·python