文档文档

Python 客户端库

使用 InfluxDB 3 客户端进行查询

InfluxDB 3 支持写入数据的兼容性端点,可以使用 InfluxDB v2 和 v1 工具。但是,/api/v2/query API 端点和相关的工具,例如 InfluxDB v2 客户端库和 influx CLI,无法查询存储在 InfluxDB 3 Core 中的数据。

InfluxDB 3 客户端库可用于与您的代码集成,以写入和查询存储在 InfluxDB 3 Core 中的数据。

比较您可以使用的工具,以与 InfluxDB 3 Core 进行交互。

使用 InfluxDB Python 客户端库将 InfluxDB 集成到 Python 脚本和应用程序中。

本指南假定您对 Python 和 InfluxDB 有一定的了解。如果刚刚入门,请参阅InfluxDB 入门

开始之前

您需要以下先决条件

  1. 安装 InfluxDB Python 库

    pip install influxdb-client
    
  2. InfluxDB Cloud Dedicated 集群 URL,使用 HTTPS 协议 – 例如

    https://localhost:8181
    
  3. 要写入的数据库的名称。

  4. InfluxDB 数据库令牌,具有写入数据库的权限。出于安全原因,我们建议设置环境变量来存储您的令牌,并避免在脚本中暴露原始令牌值。

使用 Python 将数据写入 InfluxDB

按照步骤将行协议数据写入 InfluxDB Cloud Dedicated 数据库。

  1. 在您的编辑器中,为您的 Python 程序创建一个文件 - 例如:write.py

  2. 在该文件中,导入 InfluxDB 客户端库。

    import influxdb_client
    from influxdb_client.client.write_api import SYNCHRONOUS
    import os
    
  3. 为您的数据库名称、组织(必需,但被忽略)和数据库令牌定义变量。

    database = "DATABASE_NAME"
    org = "ignored"
    # INFLUX_TOKEN is an environment variable you created for your database WRITE token
    token = os.getenv('INFLUX_TOKEN')
    url="https://localhost:8181"
    
  4. 要实例化客户端,请使用以下关键字参数调用 influxdb_client.InfluxDBClient() 方法:urlorgtoken

    client = influxdb_client.InfluxDBClient(
       url=url,
       token=token,
       org=org
    )
    

    InfluxDBClient 对象有一个 write_api 方法用于配置。

  5. 通过使用写入配置选项调用 client.write_api() 方法来实例化一个写入客户端

    write_api = client.write_api(write_options=SYNCHRONOUS)
    
  6. 创建一个 point 对象,并使用 API 写入器对象的 write 方法将其写入 InfluxDB。write 方法需要三个参数:bucketorgrecord

    p = influxdb_client.Point("my_measurement").tag("location", "Prague").field("temperature", 25.3)
    write_api.write(bucket=database, org=org, record=p)
    

完整的示例写入脚本

import influxdb_client
from influxdb_client.client.write_api import SYNCHRONOUS
import os

database = "DATABASE_NAME"
org = "ignored"
# INFLUX_TOKEN is an environment variable you created for your database WRITE token
token = os.getenv('INFLUX_TOKEN')
url="https://localhost:8181"

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=database, org=org, record=p)

使用 Python 从 InfluxDB 查询数据

InfluxDB v2 Python 客户端无法查询 InfluxDB Cloud Dedicated。要查询您的专用实例,请使用带有 gRPC 的 Python Flight SQL 客户端


此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在一样使用它,而无需对您的代码进行任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、近实时数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩功能,以实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看