Influxdb python API使用说明
发布日期:2021-10-03 22:59:27
浏览次数:24
分类:技术文章
本文共 3249 字,大约阅读时间需要 10 分钟。
InfluxDB官方支持的client库有Arduino, C#, Go, Java, JavaScript, PHP, Python, Ruby. 可以通过连接 获得说明。
这里介绍Python版本的使用。
1 下载安装
通过github ,
Influxdb-client-python库支持influxdb v1.8和v2.0版本,使用Flux 操作接口。
如果想使用InfluxQL操作接口,请使用influxdb-python(。 根据实际的使用经验,Flux比InfluxQL方便很多,推荐使用新版本。
下载之后,运行:
>sudo python3 setup.py install
就可以安装成功。
2 使用
首先需要打开Flux功能。
在配置文件influxdb.conf 的[http]部分,将flux-enabled 选项置为true。然后重启Influxdb数据库(sudo systemctl restart influxdb)
influxdb.conf# ...[http] # ... flux-enabled = true # ...
2.1 写入数据库
写入数据是比较简单的,例子如下:
import codecsfrom datetime import datetimefrom influxdb_client import WritePrecision, InfluxDBClient, Pointfrom influxdb_client.client.write_api import SYNCHRONOUSbucket = "my-bucket"client = InfluxDBClient(url="http://localhost:8086", token="my-token", org="my-org")write_api = client.write_api(write_options=SYNCHRONOUS)p = Point("my_measurement").tag("location", "Prague").field("temperature", 25.3).time(datetime.now(), WritePrecision.MS)# write using point structurewrite_api.write(bucket=bucket, record=p)
2.2 查询数据库
查询数据有好几种方法,主要是返回的数据结构不同,分为:
Table structure,stream, csv 和Pandas DataFrame。
from influxdb_client import InfluxDBClient, Point, Dialectfrom influxdb_client.client.write_api import SYNCHRONOUSclient = InfluxDBClient(url="http://localhost:8086", token="my-token", org="my-org")write_api = client.write_api(write_options=SYNCHRONOUS)query_api = client.query_api()"""Prepare data"""_point1 = Point("my_measurement").tag("location", "Prague").field("temperature", 25.3)_point2 = Point("my_measurement").tag("location", "New York").field("temperature", 24.3)write_api.write(bucket="my-bucket", record=[_point1, _point2])"""Query: using Table structure"""tables = query_api.query('from(bucket:"my-bucket") |> range(start: -10m)')for table in tables: print(table) for record in table.records: print(record.values)print()print()"""Query: using Stream"""records = query_api.query_stream('from(bucket:"my-bucket") |> range(start: -10m)')for record in records: print(f'Temperature in {record["location"]} is {record["_value"]}')"""Interrupt a stream after retrieve a required data"""large_stream = query_api.query_stream('from(bucket:"my-bucket") |> range(start: -100d)')for record in large_stream: if record["location"] == "New York": print(f'New York temperature: {record["_value"]}') breaklarge_stream.close()print()print()"""Query: using csv library"""csv_result = query_api.query_csv('from(bucket:"my-bucket") |> range(start: -10m)', dialect=Dialect(header=False, delimiter=",", comment_prefix="#", annotations=[], date_time_format="RFC3339"))for csv_line in csv_result: if not len(csv_line) == 0: print(f'Temperature in {csv_line[9]} is {csv_line[6]}')print()print()"""Query: using Pandas DataFrame"""data_frame = query_api.query_data_frame('from(bucket:"my-bucket") ' '|> range(start: -10m) ' '|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value") ' '|> keep(columns: ["location", "temperature"])')print(data_frame.to_string())"""Close client"""client.__del__()
转载地址:https://blog.csdn.net/lclfans1983/article/details/110382208 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年03月15日 05时02分04秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
python获取进程列表
2019-04-21
python 文件重命名 去掉文件名中的空格
2019-04-21
android studio 62 歌曲服务器搭建 歌曲app 下载 完整代码
2019-04-21
android studio 70 歌曲服务器搭建 歌曲app 完整代码(发布版)
2019-04-21
java Android studio 71 字符串截取 split()
2019-04-21
获取歌曲信息歌曲详细信息
2019-04-21
Python 获取歌曲详细信息 歌手 专辑 时长
2019-04-21
Python 读写xls表格文件
2019-04-21
Python mysql 数据库 安装mysql 链接数据库
2019-04-21
Python mysql创建数据库 创建表 插入数据
2019-04-21
Python mysql 数据库 查询结果 显示
2019-04-21
python 判断文件类型 文件后缀
2019-04-21
python 链接 创建 创建表 插入数据 (数据库)
2019-04-21
python sql 批量插入添加数据
2019-04-21
auto.js 自动学习app
2019-04-21
auto.js 001 打开文章及视频
2019-04-21
auto.js 视频加评论
2019-04-21
auto.js 班级打卡
2019-04-21
auto.js 一组控件
2019-04-21
kivy学习完全解析 001
2019-04-21