Python SDK
更新时间:2026-07-24
本文介绍如何使用 Python SDK 连接 TSDB 专享版,并完成数据写入和查询。
环境准备
使用 SDK 前,请准备一个 Python 项目,并完成 SDK 使用说明中的连接准备工作。建议使用独立的虚拟环境安装依赖。
安装 SDK
本文示例使用 influxdb3-python 0.20.0。
以下命令适用于 Linux / macOS;Windows 上使用 .venv\Scripts\activate 激活虚拟环境。
Bash
1python -m venv .venv
2source .venv/bin/activate
3python -m pip install 'influxdb3-python==0.20.0'
配置连接信息
示例通过以下环境变量读取连接信息:
| 环境变量 | 说明 |
|---|---|
TSDB_HOST_URL |
由集群详情页显示的访问地址和端口组成的完整 URL,例如 http://<访问地址>:<端口> |
TSDB_DATABASE_NAME |
目标 Database 名称 |
TSDB_AUTH_TOKEN |
具有目标 Database 读写权限的业务访问令牌 |
写入和查询数据
以下示例初始化客户端,写入一条 Line Protocol 数据,然后使用 SQL 查询刚写入的数据:
Python
1import os
2import time
3
4from influxdb_client_3 import InfluxDBClient3
5
6
7client = InfluxDBClient3(
8 host=os.environ["TSDB_HOST_URL"],
9 token=os.environ["TSDB_AUTH_TOKEN"],
10 database=os.environ["TSDB_DATABASE_NAME"],
11 auth_scheme="Bearer",
12 write_use_v2_api=False,
13)
14
15try:
16 client.write(record="cpu,host=server01 usage=42.5")
17
18 # 首次写入创建 Table 后,等待新表可查询。
19 time.sleep(5)
20
21 table = client.query(
22 "SELECT time, host, usage FROM cpu "
23 "WHERE host = 'server01' ORDER BY time DESC LIMIT 1"
24 )
25 for row in table.to_pylist():
26 print(row)
27finally:
28 client.close()
配置说明
write_use_v2_api=False用于启用 V3 写入接口,复制示例时请保留该配置。- 写入和查询使用同一个
TSDB_HOST_URL,无需手动拼接 API 路径。 - 示例首次写入
cpu时会自动创建 Table,因此在写入后等待 5 秒。新表通常在约 5 秒后可以查询,实际时间可能受集群运行状态影响。该等待只适用于首次建表;向已有 Table 写入不受影响。 - 查询结果以 Arrow 数据结构返回。示例使用
to_pylist()转换结果;处理大量数据时,建议根据业务需要分批读取。 - 使用完成后调用
client.close()释放 HTTP 和 Flight 连接。 - SDK 只用于数据写入和查询。管理 Database、Table、Retention 或业务访问令牌时,请使用 CLI 工具或资源管理 API。
评价此篇文章
