Python 客户端库
使用 InfluxDB 3 客户端
/api/v2/query API 端点以及相关工具,例如 InfluxDB v2 客户端库和 influx CLI,无法 查询 InfluxDB Cloud Serverless 集群。
InfluxDB 3 客户端库 和 Flight SQL 客户端 可用,能够与您的代码集成,以便写入和查询存储在 InfluxDB Cloud Serverless 中的数据。
InfluxDB 3 支持多种不同工具用于 写入 和 查询 数据。可以使用的工具比较 来与 InfluxDB Cloud Serverless 进行交互。
使用 InfluxDB Python client library 将 InfluxDB 集成到 Python 脚本和应用程序中。
本指南假设您对Python和InfluxDB有一定的熟悉度。
如果您刚开始,请参见 Get started with InfluxDB。
开始之前
您需要以下先决条件:
安装 InfluxDB Python 库:
pip install influxdb-client使用HTTPS协议的InfluxDB Cloud Serverless区域URL - 例如: https://cloud2.influxdata.com。
InfluxDB organization ID。
要写入的 bucket 的名称。
具有写入存储桶权限的InfluxDB API token。出于安全考虑,我们建议设置环境变量来存储您的token,并避免在脚本中暴露原始token值。
使用Python将数据写入InfluxDB
按照步骤将line protocol数据写入InfluxDB Cloud Serverless存储桶。
在你的编辑器中,创建一个用于你的Python程序的文件–例如:
write.py。在文件中,导入InfluxDB客户端库。
import influxdb_client from influxdb_client.client.write_api import SYNCHRONOUS import os为您的 bucket name、organization 和 token 定义变量。
bucket = "BUCKET_NAME" org = "INFLUX_ORG" # INFLUX_TOKEN is an environment variable you created for your API WRITE token token = os.getenv('INFLUX_TOKEN') url="https://cloud2.influxdata.com"要实例化客户端,请调用
influxdb_client.InfluxDBClient()方法,并传入以下关键字参数:url,org和token。client = influxdb_client.InfluxDBClient( url=url, token=token, org=org )这个
InfluxDBClient对象有一个write_api方法,用于配置。通过调用
client.write_api()方法并使用写入配置选项来实例化一个 写入客户端。write_api = client.write_api(write_options=SYNCHRONOUS)创建一个 point 对象,并使用 API 写入对象的
write方法将其写入 InfluxDB。写入方法需要三个参数:bucket,org, 和record。p = influxdb_client.Point("my_measurement").tag("location", "Prague").field("temperature", 25.3) write_api.write(bucket=bucket, org=org, record=p)
完整示例编写脚本
import influxdb_client
from influxdb_client.client.write_api import SYNCHRONOUS
import os
bucket = "BUCKET_NAME"
org = "INFLUX_ORG"
# INFLUX_TOKEN is an environment variable you created for your API WRITE token
token = os.getenv('INFLUX_TOKEN')
url="https://cloud2.influxdata.com"
client = influxdb_client.InfluxDBClient(
url=url,
token=token,
org=org
)
# Write script
write_api = client.write_api(write_options=SYNCHRONOUS)
p = influxdb_client.Point("my_measurement").tag("location", "Prague").field("temperature", 25.3)
write_api.write(bucket=bucket, org=org, record=p)
使用Python从InfluxDB查询数据
要查询您的 InfluxDB Cloud Serverless 桶,请使用InfluxDB 3 的 Python 客户端库。