Docker安装influxdb以及python基本操作
简介
InfluxDB 是一个专为处理时间序列数据(Time-Series Data)设计的开源数据库,由 Go 语言编写,专注于高效存储、查询和分析随时间变化的数据流,如监控指标、传感器数据、应用程序性能日志等。
下载镜像
docker pull influxdb:latest
csdn下载
docker的influxdb镜像资源-CSDN下载
运行InfluxDB容器
docker run -d -p 8086:8086 --name influxdb -v influxdb-storage:/var/lib/influxdb influxdb:latest
页面访问
http://localhost:8086/
设置账号密码
admin admin123
保存token
EeeeBOImBXbKFTgd-vD5Fh-5Hgk1_4sPKPIKUGJhbXHQEusfrTWVEVMdlswgLnAVaNbPnH9028Po0E_dD1Xs5w==
Python基本操作
安装依赖
pip install influxdb-client
操作代码
from influxdb_client import InfluxDBClient, Point, WritePrecisionfrom influxdb_client.client.write_api import SYNCHRONOUSimport datetime# 配置 InfluxDB 连接参数url = "http://localhost:8086"token = "EeeeBOImBXbKFTgd-vD5Fh-5Hgk1_4sPKPIKUGJhbXHQEusfrTWVEVMdlswgLnAVaNbPnH9028Po0E_dD1Xs5w==" # 替换为你的 API Tokenorg = "test" # 替换为你的组织名bucket = "bucketName" # 替换为你的桶名# 创建 InfluxDB 客户端client = InfluxDBClient(url=url, token=token, org=org)def write_data():"""写入数据到 InfluxDB"""write_api = client.write_api(write_options=SYNCHRONOUS)# 创建数据点(使用 Point 对象)point = Point("temperature") \.tag("location", "room-102") \.field("value", 25.7) \.time(datetime.datetime.utcnow(), WritePrecision.NS)try:write_api.write(bucket=bucket, record=point)print("数据写入成功")except Exception as e:print(f"写入失败: {e}")def query_data():"""从 InfluxDB 查询数据"""query_api = client.query_api()# 构建 Flux 查询语句 # |> filter(fn: (r) => r.location == "room-101")query = f'''from(bucket: "{bucket}")|> range(start: -1h)|> filter(fn: (r) => r._measurement == "temperature")'''try:result = query_api.query(query)print("\n查询结果:")for table in result:for record in table.records:print(f"时间: {record.get_time()}, 值: {record.get_value()}")except Exception as e:print(f"查询失败: {e}")if __name__ == "__main__":write_data() # 执行数据写入query_data() # 执行数据查询# 关闭客户端client.close()
执行结果