influx安装与使用
1.安装
(1)下载地址:安装 InfluxDB |InfluxDB OSS v2 文档 (influxdata.com)
(2)把文件存放到安装目录
(3)打开powershell,输入命令,程序安装完成
> cd D:\InfluxData
> ./influxd
(4)此时也可以直接用influx UI界面登录(进行注册与登录)
(5)下载influx CLI:安装和使用 influx CLI |InfluxDB Cloud (TSM) 文档 (influxdata.com)
(6)把influx放在安装目录
influx
命令无法被识别为可执行程序。这可能是因为 InfluxDB CLI 的安装目录尚未添加到系统的 PATH 环境变量中。你可以根据以下步骤解决这个问题:
- 打开 Windows “开始” 菜单并搜索 “环境变量”,在搜索结果中选择 “编辑系统环境变量”。
- 点击 “环境变量” 按钮,然后在 “系统变量” 部分找到 “Path” 变量,并点击 “编辑” 按钮。
- 在 Path 的编辑窗口中,点击 “新建” 按钮,并添加 InfluxDB CLI 的安装目录路径,例如:
D:\InfluxData\influx
(根据你的实际安装路径进行修改)。- 点击 “确定” 按钮,关闭环境变量设置窗口。
- 打开新的命令提示符(或者刷新现有命令提示符窗口),然后运行
influx
命令。此时,InfluxDB CLI 将能够正确识别并运行,你可以连接到 InfluxDB 服务器并与其进行交互了。
2.使用
(1)新建组织
保存好token,如果忘了,重建一个token:
(2)新建桶
(3)API管理数据库
- 追加信息:
from influxdb_client import InfluxDBClient, Point
from influxdb_client.client.write_api import SYNCHRONOUS, PointSettings
import random
from datetime import datetime, timedelta
# 设置 InfluxDB 连接信息
token = "WLm6XlniAYUBShIX3TRPZxexiNWiDFpQNuEYwwBxX-CtxsBjv_N9pFiGa6KYuh1R0yVSlzW-9yZacGYYqceUng=="
url = "http://localhost:8086"
org = "mine"
bucket = "make"
# 创建 InfluxDB 客户端
write_client = InfluxDBClient(url=url, token=token, org=org)
write_api = write_client.write_api(write_options=SYNCHRONOUS)
start_time = datetime(2023, 11, 10)
# 循环生成数据
for i in range(10000):
# 根据当前循环次数计算时间戳
timestamp = start_time + timedelta(minutes=5 * i)
# 创建数据点
point = Point("my_measurement") \
.field("psxs", 1.3 + random.random()) \
.field("njl", 40 + random.random()) \
.field("bsb", 22.5 + random.random()) \
.time(timestamp)
# 写入数据
write_api.write(bucket=bucket, org=org, record=point)
print("数据写入完成")
- 查询信息:
from influxdb_client import InfluxDBClient, QueryApi
token = "WLm6XlniAYUBShIX3TRPZxexiNWiDFpQNuEYwwBxX-CtxsBjv_N9pFiGa6KYuh1R0yVSlzW-9yZacGYYqceUng=="
url = "http://localhost:8086"
org = "mine"
client = InfluxDBClient(url=url, token=token, org=org)
query_api = client.query_api()
query = 'from(bucket: "make") ' \
'|> range(start: 2023-11-15T00:00:00Z, stop: 2023-11-17T23:59:59Z) ' \
'|> filter(fn: (r) => r["_measurement"] == "my_measurement") ' \
'|> filter(fn: (r) => r["_field"] == "njl")'
result = query_api.query(org=org, query=query)
for table in result:
for record in table.records:
print(f'Time: {record.get_time()}, Value: {record.get_value()}')
(4)influx查看
3.数据库使用前提
(1)powershell运行influxdb
(2)登录指定数据库