文档说明

开始写入数据

本教程将指导您如何创建 行协议 数据并将其写入 InfluxDB 的基本操作。

InfluxDB提供了许多不同的数据导入或写入选项,包括以下内容:

  • Influx用户界面(UI)
  • InfluxDB HTTP API(v1和v2)
  • Telegraf
  • influx3数据CLI
  • InfluxDB客户端库
  • influx CLI

如果使用Telegraf或InfluxDB客户端库等工具,它们可以为您构建行协议,但了解行协议的工作原理还是很有帮助的。

行协议

所有写入InfluxDB的数据都是使用行协议写入的,这是一种基于文本的格式,允许您提供写入InfluxDB所需的数据点信息。本教程介绍了行协议的基本知识,但有关详细信息,请参阅行协议参考

行协议元素

行协议的每一行包含以下元素

* 必需
  • * 测量:标识要存储数据的测量的字符串。
  • 标签集:以逗号分隔的键值对列表,每个键值对代表一个标签。标签键和值是无引号的字符串。空格、逗号和等号字符必须转义。
  • * 字段集:以逗号分隔的键值对列表,每个键值对代表一个字段。字段键是无引号的字符串。空格和逗号必须转义。字段值可以是字符串(有引号)、浮点数整数无符号整数布尔值
  • 时间戳:与数据关联的Unix时间戳。InfluxDB支持高达纳秒精度。如果时间戳的精度不是纳秒,则在将数据写入InfluxDB时必须指定精度。

行协议元素解析

  • 测量:第一个空白字符之前的所有内容。
  • 标签集:第一个空白字符和第一个空白字符之间的键值对。
  • 字段集:第一个和第二个空白字符之间的键值对。
  • 时间戳:第二个空白字符后的整数值。
  • 行由换行符(\n)分隔。行协议对空白敏感。

measurement,tag1=val1,tag2=val2 field1="v1",field2=1i 0000000000000000000


有关架构设计建议,请参阅InfluxDB架构设计

构建行协议

了解行协议的基本知识后,您现在可以构建行协议并将数据写入InfluxDB。考虑一个用例,即您从家中的传感器收集数据。每个传感器收集温度、湿度和一氧化碳读数。要收集这些数据,请使用以下架构

  • 测量home
    • 标签
      • room:客厅或厨房
    • 字段
      • temp:温度(°C)(浮点数)
      • hum:湿度百分比(浮点数)
      • co:一氧化碳(百万分之一)(整数)
    • 时间戳:秒精度的Unix时间戳

以下行协议示例表示从UTC时间2022年1月1日08:00:00开始,到UTC时间2022年1月1日20:00:00收集的数据。

家庭传感器数据行协议
home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1719924000
home,room=Kitchen temp=21.0,hum=35.9,co=0i 1719924000
home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1719927600
home,room=Kitchen temp=23.0,hum=36.2,co=0i 1719927600
home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1719931200
home,room=Kitchen temp=22.7,hum=36.1,co=0i 1719931200
home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1719934800
home,room=Kitchen temp=22.4,hum=36.0,co=0i 1719934800
home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1719938400
home,room=Kitchen temp=22.5,hum=36.0,co=0i 1719938400
home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1719942000
home,room=Kitchen temp=22.8,hum=36.5,co=1i 1719942000
home,room=Living\ Room temp=22.3,hum=36.1,co=0i 1719945600
home,room=Kitchen temp=22.8,hum=36.3,co=1i 1719945600
home,room=Living\ Room temp=22.3,hum=36.1,co=1i 1719949200
home,room=Kitchen temp=22.7,hum=36.2,co=3i 1719949200
home,room=Living\ Room temp=22.4,hum=36.0,co=4i 1719952800
home,room=Kitchen temp=22.4,hum=36.0,co=7i 1719952800
home,room=Living\ Room temp=22.6,hum=35.9,co=5i 1719956400
home,room=Kitchen temp=22.7,hum=36.0,co=9i 1719956400
home,room=Living\ Room temp=22.8,hum=36.2,co=9i 1719960000
home,room=Kitchen temp=23.3,hum=36.9,co=18i 1719960000
home,room=Living\ Room temp=22.5,hum=36.3,co=14i 1719963600
home,room=Kitchen temp=23.1,hum=36.6,co=22i 1719963600
home,room=Living\ Room temp=22.2,hum=36.4,co=17i 1719967200
home,room=Kitchen temp=22.7,hum=36.5,co=26i 1719967200

将行协议写入InfluxDB

以下示例展示了如何将前面已按行协议格式编写的示例数据写入InfluxDB云无服务器桶。

要了解有关可用工具和选项的更多信息,请参阅写入数据

本入门教程中的某些示例假设您的InfluxDB凭据(URL组织令牌)由环境变量提供。

  1. 在浏览器中转到cloud2.influxdata.com 登录并访问InfluxDB UI。

  2. 使用左侧导航栏转到加载数据 >

  1. 在您想写入数据的桶上单击 添加数据,然后选择行协议
  2. 选择手动输入
  3. 重要 在行协议文本字段上方的精度下拉菜单中,选择(以匹配行协议中时间戳的精度)。
  4. 复制上面的行协议并将其粘贴到行协议文本字段中。
  5. 单击写入数据

UI确认数据已成功写入。

  1. 如果您尚未安装,请下载、安装和配置influx CLI

  2. 使用influx write命令前面的行协议写入InfluxDB。

    提供以下内容:

influx write \
  --bucket get-started \
  --precision s "
home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1719924000
home,room=Kitchen temp=21.0,hum=35.9,co=0i 1719924000
home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1719927600
home,room=Kitchen temp=23.0,hum=36.2,co=0i 1719927600
home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1719931200
home,room=Kitchen temp=22.7,hum=36.1,co=0i 1719931200
home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1719934800
home,room=Kitchen temp=22.4,hum=36.0,co=0i 1719934800
home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1719938400
home,room=Kitchen temp=22.5,hum=36.0,co=0i 1719938400
home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1719942000
home,room=Kitchen temp=22.8,hum=36.5,co=1i 1719942000
home,room=Living\ Room temp=22.3,hum=36.1,co=0i 1719945600
home,room=Kitchen temp=22.8,hum=36.3,co=1i 1719945600
home,room=Living\ Room temp=22.3,hum=36.1,co=1i 1719949200
home,room=Kitchen temp=22.7,hum=36.2,co=3i 1719949200
home,room=Living\ Room temp=22.4,hum=36.0,co=4i 1719952800
home,room=Kitchen temp=22.4,hum=36.0,co=7i 1719952800
home,room=Living\ Room temp=22.6,hum=35.9,co=5i 1719956400
home,room=Kitchen temp=22.7,hum=36.0,co=9i 1719956400
home,room=Living\ Room temp=22.8,hum=36.2,co=9i 1719960000
home,room=Kitchen temp=23.3,hum=36.9,co=18i 1719960000
home,room=Living\ Room temp=22.5,hum=36.3,co=14i 1719963600
home,room=Kitchen temp=23.1,hum=36.6,co=22i 1719963600
home,room=Living\ Room temp=22.2,hum=36.4,co=17i 1719967200
home,room=Kitchen temp=22.7,hum=36.5,co=26i 1719967200
"

如果成功,则输出成功消息;否则,错误详细信息及失败消息。

使用Telegraf消费行协议,然后将其写入InfluxDB云无服务器。

  1. 如果您尚未安装,请遵循下载和安装Telegraf的说明。

  2. 家庭传感器数据示例复制并保存到本地系统上的文件中 - 例如,home.lp

    cat <<- EOF > home.lp
    home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1719924000
    home,room=Kitchen temp=21.0,hum=35.9,co=0i 1719924000
    home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1719927600
    home,room=Kitchen temp=23.0,hum=36.2,co=0i 1719927600
    home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1719931200
    home,room=Kitchen temp=22.7,hum=36.1,co=0i 1719931200
    home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1719934800
    home,room=Kitchen temp=22.4,hum=36.0,co=0i 1719934800
    home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1719938400
    home,room=Kitchen temp=22.5,hum=36.0,co=0i 1719938400
    home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1719942000
    home,room=Kitchen temp=22.8,hum=36.5,co=1i 1719942000
    home,room=Living\ Room temp=22.3,hum=36.1,co=0i 1719945600
    home,room=Kitchen temp=22.8,hum=36.3,co=1i 1719945600
    home,room=Living\ Room temp=22.3,hum=36.1,co=1i 1719949200
    home,room=Kitchen temp=22.7,hum=36.2,co=3i 1719949200
    home,room=Living\ Room temp=22.4,hum=36.0,co=4i 1719952800
    home,room=Kitchen temp=22.4,hum=36.0,co=7i 1719952800
    home,room=Living\ Room temp=22.6,hum=35.9,co=5i 1719956400
    home,room=Kitchen temp=22.7,hum=36.0,co=9i 1719956400
    home,room=Living\ Room temp=22.8,hum=36.2,co=9i 1719960000
    home,room=Kitchen temp=23.3,hum=36.9,co=18i 1719960000
    home,room=Living\ Room temp=22.5,hum=36.3,co=14i 1719963600
    home,room=Kitchen temp=23.1,hum=36.6,co=22i 1719963600
    home,room=Living\ Room temp=22.2,hum=36.4,co=17i 1719967200
    home,room=Kitchen temp=22.7,hum=36.5,co=26i 1719967200
    EOF
    
  3. 运行以下命令以生成启用inputs.fileoutputs.influxdb_v2插件的Telegraf配置文件(./telegraf.conf

    telegraf --sample-config \
      --input-filter file \
      --output-filter influxdb_v2 \
      > telegraf.conf
    
  4. 在您的编辑器中打开./telegraf.conf并配置以下内容

    • file输入插件:在[[inputs.file]].files列表中,将"/tmp/metrics.out"替换为您的示例数据文件名。如果Telegraf启动时找不到文件,它将停止处理并退出。

      [[inputs.file]]
        ## Files to parse each interval.  Accept standard unix glob matching rules,
        ## as well as ** to match recursive files and directories.
        files = ["home.lp"]
      
    • output-influxdb_v2输出插件:在[[outputs.influxdb_v2]]部分中,将默认值替换为您InfluxDB云无服务器桶的以下配置

      [[outputs.influxdb_v2]]
        # InfluxDB Cloud Serverless URL
        urls = ["${INFLUX_HOST}"]
      
        # INFLUX_TOKEN is an environment variable you assigned to your API token
        token = "${INFLUX_TOKEN}"
      
        # An empty string (InfluxDB ignores this parameter)
        organization = ""
      
        # Bucket name
        bucket = "get-started"
      

      以下示例配置使用以下InfluxDB凭据

      • urls:包含您的INFLUX_HOST环境变量的数组
      • token:您的INFLUX_TOKEN环境变量
      • organization:空字符串(InfluxDB忽略此参数)
      • bucket:要写入的桶的名称
  5. 要写入数据,请使用以下选项启动telegraf守护进程

    • --config:指定配置文件的路径。
    • --once:仅运行一次 Telegraf 收集周期,针对配置的输入和输出,然后退出。

    在您的终端中输入以下命令:

    telegraf --once --config ./telegraf.conf
    

    如果写入成功,输出类似于以下内容:

    2023-05-31T20:09:08Z D! [agent] Starting service inputs
    2023-05-31T20:09:19Z D! [outputs.influxdb_v2] Wrote batch of 52 metrics in 348.008167ms
    2023-05-31T20:09:19Z D! [outputs.influxdb_v2] Buffer fullness: 0 / 10000 metrics
    

Telegraf 及其插件提供了许多读取和写入数据的功能。要了解更多信息,请参阅如何使用 Telegraf 写入数据

使用已经使用 InfluxDB v1 /write API 端点的现有工作负载来写入数据。

如果您要从 InfluxDB 1.x 迁移数据,请参阅从 InfluxDB 1.x 迁移数据到 InfluxDB Cloud Serverless指南。

要使用 InfluxDB v1 HTTP API 将数据写入 InfluxDB,请使用 POST 请求方法向 InfluxDB API 的 /write 端点发送请求。

POST https://cloud2.influxdata.com/write

请求中包含以下内容:

  • 头部:
    • Authorization: Token <INFLUX_TOKEN>
    • Content-Type: text/plain; charset=utf-8
    • Accept: application/json
  • 查询参数:
    • db: InfluxDB 存储桶名称
    • precision: 时间戳精度(默认为 ns
    • rp: 保留策略名称(默认是命名空间的默认 DBRP 映射,如果存在;否则,将自动生成 DBRP 映射)。
  • 请求体:纯文本行协议

以下示例使用 cURL 和 InfluxDB v1 API 将行协议写入 InfluxDB。假设 API_TOKEN 是一个所有访问 API 令牌,InfluxDB 将创建一个名为 get-started/autogen 的存储桶和一个 autogen DBRP 映射,然后将数据写入存储桶。

response=$(curl --silent --write-out "%{response_code}:-%{errormsg}" \
  "https://cloud2.influxdata.com/write?db=get-started&precision=s" \
  --header "Authorization: Token API_TOKEN" \
  --header "Content-type: text/plain; charset=utf-8" \
  --header "Accept: application/json" \
  --data-binary "
home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000
home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000
home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1641027600
home,room=Kitchen temp=23.0,hum=36.2,co=0i 1641027600
home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1641031200
home,room=Kitchen temp=22.7,hum=36.1,co=0i 1641031200
home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1641034800
home,room=Kitchen temp=22.4,hum=36.0,co=0i 1641034800
home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1641038400
home,room=Kitchen temp=22.5,hum=36.0,co=0i 1641038400
home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1641042000
home,room=Kitchen temp=22.8,hum=36.5,co=1i 1641042000
home,room=Living\ Room temp=22.3,hum=36.1,co=0i 1641045600
home,room=Kitchen temp=22.8,hum=36.3,co=1i 1641045600
home,room=Living\ Room temp=22.3,hum=36.1,co=1i 1641049200
home,room=Kitchen temp=22.7,hum=36.2,co=3i 1641049200
home,room=Living\ Room temp=22.4,hum=36.0,co=4i 1641052800
home,room=Kitchen temp=22.4,hum=36.0,co=7i 1641052800
home,room=Living\ Room temp=22.6,hum=35.9,co=5i 1641056400
home,room=Kitchen temp=22.7,hum=36.0,co=9i 1641056400
home,room=Living\ Room temp=22.8,hum=36.2,co=9i 1641060000
home,room=Kitchen temp=23.3,hum=36.9,co=18i 1641060000
home,room=Living\ Room temp=22.5,hum=36.3,co=14i 1641063600
home,room=Kitchen temp=23.1,hum=36.6,co=22i 1641063600
home,room=Living\ Room temp=22.2,hum=36.4,co=17i 1641067200
home,room=Kitchen temp=22.7,hum=36.5,co=26i 1641067200
")

# Format the response code and error message output.
response_code=${response%%:-*}
errormsg=${response#*:-}

# Remove leading and trailing whitespace from errormsg
errormsg=$(echo "${errormsg}" | tr -d '[:space:]')

echo "$response_code"
if [[ $errormsg ]]; then
  echo "$response"
fi

替换以下内容:

如果成功,输出将是 HTTP 204 No Content 状态码;否则,将输出错误状态码和失败信息。

204

要使用 InfluxDB v2 HTTP API 将数据写入 InfluxDB,请使用 POST 请求方法向 InfluxDB API 的 /api/v2/write 端点发送请求。

POST https://cloud2.influxdata.com/api/v2/write

请求中包含以下内容:

  • 头部:
    • Authorization: Token <INFLUX_TOKEN>
    • Content-Type: text/plain; charset=utf-8
    • Accept: application/json
  • 查询参数:
    • bucket: InfluxDB 存储桶名称
    • precision: 时间戳精度(默认为 ns
  • 请求体:纯文本行协议

以下示例使用 cURL 和 InfluxDB v2 API 将行协议写入 InfluxDB

response=$(curl --silent --write-out "%{response_code}:-%{errormsg}" \
  "https://cloud2.influxdata.com/api/v2/write?bucket=get-started&precision=s" \
  --header "Authorization: Token DATABASE_TOKEN" \
  --header "Content-Type: text/plain; charset=utf-8" \
  --header "Accept: application/json" \
  --data-binary "
home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000
home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000
home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1641027600
home,room=Kitchen temp=23.0,hum=36.2,co=0i 1641027600
home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1641031200
home,room=Kitchen temp=22.7,hum=36.1,co=0i 1641031200
home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1641034800
home,room=Kitchen temp=22.4,hum=36.0,co=0i 1641034800
home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1641038400
home,room=Kitchen temp=22.5,hum=36.0,co=0i 1641038400
home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1641042000
home,room=Kitchen temp=22.8,hum=36.5,co=1i 1641042000
home,room=Living\ Room temp=22.3,hum=36.1,co=0i 1641045600
home,room=Kitchen temp=22.8,hum=36.3,co=1i 1641045600
home,room=Living\ Room temp=22.3,hum=36.1,co=1i 1641049200
home,room=Kitchen temp=22.7,hum=36.2,co=3i 1641049200
home,room=Living\ Room temp=22.4,hum=36.0,co=4i 1641052800
home,room=Kitchen temp=22.4,hum=36.0,co=7i 1641052800
home,room=Living\ Room temp=22.6,hum=35.9,co=5i 1641056400
home,room=Kitchen temp=22.7,hum=36.0,co=9i 1641056400
home,room=Living\ Room temp=22.8,hum=36.2,co=9i 1641060000
home,room=Kitchen temp=23.3,hum=36.9,co=18i 1641060000
home,room=Living\ Room temp=22.5,hum=36.3,co=14i 1641063600
home,room=Kitchen temp=23.1,hum=36.6,co=22i 1641063600
home,room=Living\ Room temp=22.2,hum=36.4,co=17i 1641067200
home,room=Kitchen temp=22.7,hum=36.5,co=26i 1641067200
")

# Format the response code and error message output.
response_code=${response%%:-*}
errormsg=${response#*:-}

# Remove leading and trailing whitespace from errormsg
errormsg=$(echo "${errormsg}" | tr -d '[:space:]')

echo "$response_code"
if [[ $errormsg ]]; then
  echo "$errormsg"
fi

替换以下内容:

  • API_TOKEN:一个拥有对指定存储桶充分权限的令牌

如果成功,输出将是 HTTP 204 No Content 状态码;否则,将输出错误状态码和失败信息。

204

要使用 Python 将数据写入 InfluxDB Cloud Serverless,请使用influxdb_client_3模块。以下步骤包括设置 Python 虚拟环境,以便将依赖项限制到您的当前项目。

  1. 创建一个模块目录并导航到其中——例如

    mkdir -p influxdb_py_client && cd influxdb_py_client
    
  2. 在您的模块目录中设置 Python 虚拟环境。

    python -m venv envs/virtual-env
    
  3. 激活虚拟环境。

    source ./envs/virtual-env/bin/activate
    
  4. 安装客户端库包

    pip install influxdb3-python
    

influxdb3-python 包提供了 influxdb_client_3 模块,并且安装了 pyarrow,以便与查询返回的 Arrow 数据一起使用。

  1. 在您的终端或编辑器中,为您要编写的代码创建一个新文件——例如:write.py

    touch write.py
    
  2. write.py 中,输入以下示例代码

    from influxdb_client_3 import InfluxDBClient3
    import os
    
    # INFLUX_TOKEN is an environment variable you assigned to your
    # API WRITE token value.
    token = os.getenv('INFLUX_TOKEN')
    
    # host is the URL hostname without protocol or trailing slash
    client = InfluxDBClient3(
        host='cloud2.influxdata.com',
        token=token,
        database='get-started'
    )
    
    lines = [
        "home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1719924000",
        "home,room=Kitchen temp=21.0,hum=35.9,co=0i 1719924000",
        "home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1719927600",
        "home,room=Kitchen temp=23.0,hum=36.2,co=0i 1719927600",
        "home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1719931200",
        "home,room=Kitchen temp=22.7,hum=36.1,co=0i 1719931200",
        "home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1719934800",
        "home,room=Kitchen temp=22.4,hum=36.0,co=0i 1719934800",
        "home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1719938400",
        "home,room=Kitchen temp=22.5,hum=36.0,co=0i 1719938400",
        "home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1719942000",
        "home,room=Kitchen temp=22.8,hum=36.5,co=1i 1719942000",
        "home,room=Living\ Room temp=22.3,hum=36.1,co=0i 1719945600",
        "home,room=Kitchen temp=22.8,hum=36.3,co=1i 1719945600",
        "home,room=Living\ Room temp=22.3,hum=36.1,co=1i 1719949200",
        "home,room=Kitchen temp=22.7,hum=36.2,co=3i 1719949200",
        "home,room=Living\ Room temp=22.4,hum=36.0,co=4i 1719952800",
        "home,room=Kitchen temp=22.4,hum=36.0,co=7i 1719952800",
        "home,room=Living\ Room temp=22.6,hum=35.9,co=5i 1719956400",
        "home,room=Kitchen temp=22.7,hum=36.0,co=9i 1719956400",
        "home,room=Living\ Room temp=22.8,hum=36.2,co=9i 1719960000",
        "home,room=Kitchen temp=23.3,hum=36.9,co=18i 1719960000",
        "home,room=Living\ Room temp=22.5,hum=36.3,co=14i 1719963600",
        "home,room=Kitchen temp=23.1,hum=36.6,co=22i 1719963600",
        "home,room=Living\ Room temp=22.2,hum=36.4,co=17i 1719967200",
        "home,room=Kitchen temp=22.7,hum=36.5,co=26i 1719967200"
    ]
    
    client.write(lines,write_precision='s')
    

    以下示例执行以下操作

    1. influxdb_client_3 模块导入 InfluxDBClient3 对象。

    2. 调用 InfluxDBClient3() 构造函数以实例化一个配置了以下凭证的 InfluxDB 客户端

      • host:InfluxDB Cloud Serverless 区域主机名(URL 无协议或尾部斜杠)
      • token:一个token,具有对指定存储桶的写入访问权限。将其存储在密钥存储库或环境变量中,以避免暴露原始 token 字符串。
      • database:要写入的 InfluxDB Cloud Serverless 存储桶的名称
    3. 定义了一个列表,其中包含行协议字符串,每个字符串表示一条数据记录。

    4. 使用行协议记录列表和写入选项调用 client.write() 方法。

      由于示例行协议中的时间戳具有秒精度,因此示例传递了 write_precision='s' 选项来设置 时间戳精度 为秒。

  3. 要在终端中执行模块并将行协议写入您的 InfluxDB Cloud Serverless 存储桶,请输入以下命令

    python write.py
    

如果成功,则输出成功消息;否则,错误详细信息及失败消息。

要使用 Go 将数据写入 InfluxDB Cloud Serverless,请使用 InfluxDB v3 influxdb3-go 客户端库包

  1. 在您的项目目录中,创建一个新模块目录并进入该目录。

    mkdir -p influxdb_go_client && cd influxdb_go_client
    
  2. 在目录中初始化一个新的 Go 模块。

    go mod init influxdb_go_client
    
  3. 在终端或编辑器中,为您要编写的代码创建一个新文件——例如:write.go

    touch write.go
    
  4. write.go 中,输入以下示例代码

    package main
    
    import (
      "context"
      "os"
      "fmt"
      "log"
    
      "github.com/InfluxCommunity/influxdb3-go/influxdb3"
    )
    
    // Write line protocol data to InfluxDB
    func WriteLineProtocol() error {
      // INFLUX_TOKEN is an environment variable you assigned to your
      // API WRITE token value.
      token := os.Getenv("INFLUX_TOKEN")
      database := os.Getenv("INFLUX_DATABASE")
    
      // Initialize a client with URL and token,
      // and set the timestamp precision for writes.
      client, err := influxdb3.New(influxdb3.ClientConfig{
        Host:     "https://cloud2.influxdata.com",
        Token:    token,
        Database: database,
          WriteOptions: &influxdb3.WriteOptions{Precision: lineprotocol.Second},
      })
    
      // Close the client when the function returns.
      defer func(client *influxdb3.Client) {
        err := client.Close()
        if err != nil {
          panic(err)
        }
      }(client)
    
      // Define line protocol records to write.
      // Use a raw string literal (denoted by backticks)
      // to preserve backslashes and prevent interpretation
      // of escape sequences--for example, escaped spaces in tag values.
      lines := [...]string{
        `home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1719124000`,
        `home,room=Kitchen temp=21.0,hum=35.9,co=0i 1719124000`,
        `home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1719127600`,
        `home,room=Kitchen temp=23.0,hum=36.2,co=0i 1719127600`,
        `home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1719131200`,
        `home,room=Kitchen temp=22.7,hum=36.1,co=0i 1719131200`,
        `home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1719134800`,
        `home,room=Kitchen temp=22.4,hum=36.0,co=0i 1719134800`,
        `home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1719138400`,
        `home,room=Kitchen temp=22.5,hum=36.0,co=0i 1719138400`,
        `home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1719142000`,
        `home,room=Kitchen temp=22.8,hum=36.5,co=1i 1719142000`,
        `home,room=Living\ Room temp=22.3,hum=36.1,co=0i 1719145600`,
        `home,room=Kitchen temp=22.8,hum=36.3,co=1i 1719145600`,
        `home,room=Living\ Room temp=22.3,hum=36.1,co=1i 1719149200`,
        `home,room=Kitchen temp=22.7,hum=36.2,co=3i 1719149200`,
        `home,room=Living\ Room temp=22.4,hum=36.0,co=4i 1719152800`,
        `home,room=Kitchen temp=22.4,hum=36.0,co=7i 1719152800`,
        `home,room=Living\ Room temp=22.6,hum=35.9,co=5i 1719156400`,
        `home,room=Kitchen temp=22.7,hum=36.0,co=9i 1719156400`,
        `home,room=Living\ Room temp=22.8,hum=36.2,co=9i 1719160000`,
        `home,room=Kitchen temp=23.3,hum=36.9,co=18i 1719160000`,
        `home,room=Living\ Room temp=22.5,hum=36.3,co=14i 1719163600`,
        `home,room=Kitchen temp=23.1,hum=36.6,co=22i 1719163600`,
        `home,room=Living\ Room temp=22.2,hum=36.4,co=17i 1719167200`,
        `home,room=Kitchen temp=22.7,hum=36.5,co=26i 1719167200`,
      }
    
      // Iterate over the lines array and write each line
      // separately to InfluxDB
      for _, record := range lines {
        err = client.Write(context.Background(), []byte(record))
        if err != nil {
          log.Fatalf("Error writing line protocol: %v", err)
        }
      }
    
      if err != nil {
        panic(err)
      }
    
      fmt.Println("Data has been written successfully.")
      return nil
    }
    

    以下示例执行以下操作

    1. 导入所需的包。

    2. 定义一个 WriteLineProtocol() 函数,执行以下操作

      1. 要实例化客户端,调用 influxdb3.New(influxdb3.ClientConfig) 函数并传递以下内容

        • Host:您的 InfluxDB Cloud Serverless 区域 URL

        • Token:一个token,具有对指定存储桶的写入访问权限。将其存储在密钥存储库或环境变量中,以避免暴露原始 token 字符串。

        • WriteOptionsinfluxdb3.WriteOptions 写入 InfluxDB 的选项

          由于示例行协议中的时间戳具有秒精度,因此示例传递了 Precision: lineprotocol.Second 选项来设置 时间戳精度 为秒。

      2. 定义一个延迟函数,当函数返回时关闭客户端。

      3. 定义一个行协议字符串数组,其中每个字符串表示一条数据记录。

      4. 遍历行协议数组,并调用写客户端的 Write() 方法,将每行行协议单独写入 InfluxDB。

  5. 在您的编辑器中创建一个 main.go 文件,并输入以下示例代码,该代码调用 WriteLineProtocol() 函数

    package main
    
    // Module main function
    func main() {
      WriteLineProtocol()
    }
    
  6. 要在终端中安装依赖关系并将数据写入您的 InfluxDB Cloud Serverless 存储桶,请输入以下命令

    go mod tidy && go run influxdb_go_client
    

如果成功,则输出成功消息;否则,错误详细信息及失败消息。

  1. 如果您尚未安装,请按照 下载和安装 Node.js 和 npm 的说明 在您的系统上操作。

  2. 在您的终端中,输入以下命令以为您的项目创建一个 influxdb_js_client 目录

    mkdir influxdb_js_client && cd influxdb_js_client
    
  3. influxdb_js_client 目录内,输入以下命令以初始化一个包。此示例配置了包以使用 ECMAScript 模块 (ESM)

    npm init -y; npm pkg set type="module"
    
  4. @influxdata/influxdb3-client JavaScript 客户端库作为依赖项安装到您的项目中。

    npm install --save @influxdata/influxdb3-client
    
  5. 在您的终端或编辑器中,创建一个 write.js 文件。

    touch write.js
    
  6. write.js 文件中,输入以下示例代码

    // write.js
    import { InfluxDBClient } from "@influxdata/influxdb3-client";
    
    /**
     * Set InfluxDB credentials.
     */
    const host = 'cloud2.influxdata.com';
    const database = 'get-started';
    /**
    * INFLUX_TOKEN is an environment variable you assigned to your
    * API WRITE token value.
    */
    const token = process.env.INFLUX_TOKEN;
    
    /**
    * Write line protocol to InfluxDB using the JavaScript client library.
    */
    export async function writeLineProtocol() {
      /**
      * Instantiate an InfluxDBClient
      */
      const client = new InfluxDBClient({ host, token });
    
      /**
      * Define line protocol records to write.
      */
      const records = [
        `home,room=Living\\ Room temp=21.1,hum=35.9,co=0i 1719124000`,
        `home,room=Kitchen temp=21.0,hum=35.9,co=0i 1719124000`,
        `home,room=Living\\ Room temp=21.4,hum=35.9,co=0i 1719127600`,
        `home,room=Kitchen temp=23.0,hum=36.2,co=0 1719127600`,
        `home,room=Living\\ Room temp=21.8,hum=36.0,co=0i 1719131200`,
        `home,room=Kitchen temp=22.7,hum=36.1,co=0i 1719131200`,
        `home,room=Living\\ Room temp=22.2,hum=36.0,co=0i 1719134800`,
        `home,room=Kitchen temp=22.4,hum=36.0,co=0i 1719134800`,
        `home,room=Living\\ Room temp=22.2,hum=35.9,co=0i 1719138400`,
        `home,room=Kitchen temp=22.5,hum=36.0,co=0i 1719138400`,
        `home,room=Living\\ Room temp=22.4,hum=36.0,co=0i 1719142000`,
        `home,room=Kitchen temp=22.8,hum=36.5,co=1i 1719142000`,
        `home,room=Living\\ Room temp=22.3,hum=36.1,co=0i 1719145600`,
        `home,room=Kitchen temp=22.8,hum=36.3,co=1i 1719145600`,
        `home,room=Living\\ Room temp=22.3,hum=36.1,co=1i 1719149200`,
        `home,room=Kitchen temp=22.7,hum=36.2,co=3i 1719149200`,
        `home,room=Living\\ Room temp=22.4,hum=36.0,co=4i 1719152800`,
        `home,room=Kitchen temp=22.4,hum=36.0,co=7i 1719152800`,
        `home,room=Living\\ Room temp=22.6,hum=35.9,co=5i 1719156400`,
        `home,room=Kitchen temp=22.7,hum=36.0,co=9i 1719156400`,
        `home,room=Living\\ Room temp=22.8,hum=36.2,co=9i 1719160000`,
        `home,room=Kitchen temp=23.3,hum=36.9,co=18i 1719160000`,
        `home,room=Living\\ Room temp=22.5,hum=36.3,co=14i 1719163600`,
        `home,room=Kitchen temp=23.1,hum=36.6,co=22i 1719163600`,
        `home,room=Living\\ Room temp=22.2,hum=36.4,co=17i 1719167200`,
        `home,room=Kitchen temp=22.7,hum=36.5,co=26i 1719167200`,
      ];
    
      /**
      * Creates an array that contains separate write request promises
      * for all the records.
      */
      const writePromises = records.map((record) => {
        return client.write(record, database, "", { precision: "s" })
        .then(() => `Data has been written successfully: ${record}`,
              () => `Failed writing data: ${record}`);
      });
    
      /**
      * Wait for all the write promises to settle, and then output the results.
      */  
      const writeResults = await Promise.allSettled(writePromises);
      writeResults.forEach(write => console.log(write.value));
    
      /** Close the client to release resources. */
      await client.close();
    }
    

    示例代码执行以下操作

    1. 导入 InfluxDBClient 类。

    2. 调用 new InfluxDBClient() 构造函数,并传递一个 ClientOptions 对象以实例化一个配置有 InfluxDB 凭据的客户端。

      • host:您的 InfluxDB 云无服务器区域 URL
      • token:一个token,具有对指定存储桶的写入访问权限。将其存储在密钥存储库或环境变量中,以避免暴露原始 token 字符串。
    3. 定义了一个列表,其中包含行协议字符串,每个字符串表示一条数据记录。

    4. 调用客户端的 write() 方法以写入每个记录,定义返回的成功或失败消息,并将挂起的承诺收集到 writePromises 数组中。每次调用 write() 都传递以下参数

      • record:行协议记录
      • database:要写入的 InfluxDB Cloud Serverless 存储桶的名称
      • {precision}:一个 WriteOptions 对象,该对象设置 precision 值。

      由于示例行协议中的时间戳以秒精度,因此示例传递 s 作为 precision 值,以将写入的 时间戳精度 设置为秒。

    5. 使用承诺数组调用 Promise.allSettled() 以暂停执行,直到承诺完成,然后将包含成功和失败消息的数组分配给一个 writeResults 常量。

    6. 遍历并打印 writeResults 中的消息。

    7. 关闭客户端以释放资源。

  7. 在您的终端或编辑器中,创建一个 index.js 文件。

  8. index.js 文件中,输入以下示例代码以导入和调用 writeLineProtocol()

    // index.js
    import { writeLineProtocol } from "./write.js";
    
    /**
    * Execute the client functions.
    */
    async function main() {
      /** Write line protocol data to InfluxDB. */
      await writeLineProtocol();
    }
    
    main();
    
  9. 在您的终端中,执行 index.mjs 以写入 InfluxDB 云无服务器

    node index.js
    

如果成功,则输出成功消息;否则,错误详细信息及失败消息。

  1. 如果您尚未安装,请按照 Microsoft.com 的下载说明 安装 .NET 和 dotnet CLI。

  2. 在您的终端中,使用 .NET 控制台 模板创建一个可执行的 C# 项目。

    dotnet new console --name influxdb_csharp_client
    
  3. 切换到生成的 influxdb_csharp_client 目录。

    cd influxdb_csharp_client
    
  4. 运行以下命令以安装 InfluxDB v3 C# 客户端库的最新版本。

    dotnet add package InfluxDB3.Client
    
  5. 在您的编辑器中,创建一个 Write.cs 文件并输入以下示例代码

    // Write.cs
    
    using System;
    using System.Threading.Tasks;
    using InfluxDB3.Client;
    using InfluxDB3.Client.Query;
    
    namespace InfluxDBv3;
    
    public class Write
    {
      /**
        * Writes line protocol to InfluxDB using the C# .NET client
        * library.
        */
      public static async Task WriteLines()
      {
        // Set InfluxDB credentials
        const string host = "https://cloud2.influxdata.com";
        string? database = "get-started";
    
        /**
          * INFLUX_TOKEN is an environment variable you assigned to your
          * WRITE token value.
          */
        string? token = System.Environment
            .GetEnvironmentVariable("INFLUX_TOKEN");
    
        // Instantiate the InfluxDB client with credentials.
        using var client = new InfluxDBClient(
            host, token: token, database: database);
    
        /** 
          * Define an array of line protocol strings to write.
          * Include an additional backslash to preserve backslashes
          * and prevent interpretation of escape sequences---for example,
          * escaped spaces in tag values.
          */
        string[] lines = new string[] {
              "home,room=Living\\ Room temp=21.1,hum=35.9,co=0i 1719924000",
              "home,room=Kitchen temp=21.0,hum=35.9,co=0i 1719924000",
              "home,room=Living\\ Room temp=21.4,hum=35.9,co=0i 1719927600",
              "home,room=Kitchen temp=23.0,hum=36.2,co=0i 1719927600",
              "home,room=Living\\ Room temp=21.8,hum=36.0,co=0i 1719931200",
              "home,room=Kitchen temp=22.7,hum=36.1,co=0i 1719931200",
              "home,room=Living\\ Room temp=22.2,hum=36.0,co=0i 1719934800",
              "home,room=Kitchen temp=22.4,hum=36.0,co=0i 1719934800",
              "home,room=Living\\ Room temp=22.2,hum=35.9,co=0i 1719938400",
              "home,room=Kitchen temp=22.5,hum=36.0,co=0i 1719938400",
              "home,room=Living\\ Room temp=22.4,hum=36.0,co=0i 1719942000",
              "home,room=Kitchen temp=22.8,hum=36.5,co=1i 1719942000",
              "home,room=Living\\ Room temp=22.3,hum=36.1,co=0i 1719945600",
              "home,room=Kitchen temp=22.8,hum=36.3,co=1i 1719945600",
              "home,room=Living\\ Room temp=22.3,hum=36.1,co=1i 1719949200",
              "home,room=Kitchen temp=22.7,hum=36.2,co=3i 1719949200",
              "home,room=Living\\ Room temp=22.4,hum=36.0,co=4i 1719952800",
              "home,room=Kitchen temp=22.4,hum=36.0,co=7i 1719952800",
              "home,room=Living\\ Room temp=22.6,hum=35.9,co=5i 1719956400",
              "home,room=Kitchen temp=22.7,hum=36.0,co=9i 1719956400",
              "home,room=Living\\ Room temp=22.8,hum=36.2,co=9i 1719960000",
              "home,room=Kitchen temp=23.3,hum=36.9,co=18i 1719960000",
              "home,room=Living\\ Room temp=22.5,hum=36.3,co=14i 1719963600",
              "home,room=Kitchen temp=23.1,hum=36.6,co=22i 1719963600",
              "home,room=Living\\ Room temp=22.2,hum=36.4,co=17i 1719967200",
              "home,room=Kitchen temp=22.7,hum=36.5,co=26i 1719967200"
        };
    
        // Write each record separately.
        foreach (string line in lines)
        {
          // Write the record to InfluxDB with timestamp precision in seconds.
          await client.WriteRecordAsync(
              record: line, precision: WritePrecision.S);
          Console.WriteLine(
              "Data has been written successfully: {0,-30}", line);
        }
      }
    }
    

    以下示例执行以下操作

    1. 调用 new InfluxDBClient() 构造函数以实例化一个配置有 InfluxDB 凭据的客户端。

      • host:您的 InfluxDB 云无服务器区域 URL
      • database:要写入的 InfluxDB 云无服务器存储桶的名称
      • token:具有写入指定存储桶权限的 令牌将其存储在秘密存储库或环境变量中,以避免暴露原始令牌字符串。

      使用语句确保程序在不再需要时释放客户端。

    2. 定义一个行协议字符串数组,其中每个字符串表示一条数据记录。

    3. 调用客户端的 WriteRecordAsync() 方法将每条行协议记录写入 InfluxDB。

      由于样本行协议中的时间戳以秒为单位,示例将WritePrecision.S枚举值传递给precision:选项,以将时间戳精度设置为秒。

  6. 在您的编辑器中打开Program.cs文件,并用以下内容替换其内容

    // Program.cs
    
    using System;
    using System.Threading.Tasks;
    
    namespace InfluxDBv3;
    
    public class Program
    {
      public static async Task Main()
      {
        await Write.WriteLineProtocol();
      }
    }
    

    Program类与您在上一步骤中定义的Write类共享相同的InfluxDBv3命名空间,并定义了一个Main()函数,该函数调用Write.WriteLineProtocol()。`dotnet` CLI将`Program.Main()`识别为您的程序的入口点。

  7. 要构建和执行程序并将行协议写入您的InfluxDB Cloud Serverless桶,请在您的终端中输入以下命令

    dotnet run
    

如果成功,则输出成功消息;否则,错误详细信息及失败消息。

本教程假定使用Maven版本3.9和Java版本>= 15。

  1. 如果您尚未这样做,请按照说明下载并安装适用于您的系统的Java JDKMaven

  2. 在您的终端或编辑器中使用Maven生成项目——例如

    mvn org.apache.maven.plugins:maven-archetype-plugin:3.1.2:generate \
    -DarchetypeArtifactId="maven-archetype-quickstart" \
    -DarchetypeGroupId="org.apache.maven.archetypes" -DarchetypeVersion="1.4" \
    -DgroupId="com.influxdbv3" -DartifactId="influxdb_java_client"
    -Dversion="1.0"
    

    Maven创建了一个<artifactId>目录(./influxdb_java_client),其中包含一个pom.xml和您的com.influxdbv3.influxdb_java_client Java应用程序的脚手架。

  3. 在您的终端或编辑器中切换到./influxdb_java_client目录——例如

    cd ./influxdb_java_client
    
  4. 在您的编辑器中打开Maven配置文件pom.xml,并将com.influxdb.influxdb3-java客户端库添加到dependencies中。

    ...
    <dependencies>
      ...
      <dependency>
      <groupId>com.influxdb</groupId>
      <artifactId>influxdb3-java</artifactId>
      <version>0.1.0</version>
      </dependency>
      ...
    </dependencies>
    
  5. 要检查您的pom.xml是否存在问题,请运行Maven的validate命令——例如,在您的终端中输入以下内容

    mvn validate
    
  6. 在您的编辑器中,导航到./influxdb_java_client/src/main/java/com/influxdbv3目录,并创建一个Write.java文件。

  7. Write.java中,输入以下示例代码

    // Write.java
    package com.influxdbv3;
    
    import java.util.List;
    import com.influxdb.v3.client.InfluxDBClient;
    import com.influxdb.v3.client.write.WriteOptions;
    import com.influxdb.v3.client.write.WritePrecision;
    
    /**
      * Writes line protocol to InfluxDB using the Java client
      * library.
      */
    public final class Write {
        /**
        * Write data to InfluxDB v3.
        */
        private Write() {
            //not called
        }
    
        /**
          * @throws Exception
          */
        public static void writeLineProtocol() throws Exception {
    
            // Set InfluxDB credentials
            final String host = "https://cloud2.influxdata.com";
            final String database = "get-started";
    
            /**
              * INFLUX_TOKEN is an environment variable you assigned to your
              * WRITE token value.
              */
            final char[] token = (System.getenv("INFLUX_TOKEN")).
            toCharArray();
    
            // Instantiate the InfluxDB client.
            try (InfluxDBClient client = InfluxDBClient.getInstance(host,
            token, database)) {
                // Create a list of line protocol records.
                final List<String> records = List.of(
                  "home,room=Living\\ Room temp=21.1,hum=35.9,co=0i 1719924000",
                  "home,room=Kitchen temp=21.0,hum=35.9,co=0i 1719924000",
                  "home,room=Living\\ Room temp=21.4,hum=35.9,co=0i 1719927600",
                  "home,room=Kitchen temp=23.0,hum=36.2,co=0i 1719927600",
                  "home,room=Living\\ Room temp=21.8,hum=36.0,co=0i 1719931200",
                  "home,room=Kitchen temp=22.7,hum=36.1,co=0i 1719931200",
                  "home,room=Living\\ Room temp=22.2,hum=36.0,co=0i 1719934800",
                  "home,room=Kitchen temp=22.4,hum=36.0,co=0i 1719934800",
                  "home,room=Living\\ Room temp=22.2,hum=35.9,co=0i 1719938400",
                  "home,room=Kitchen temp=22.5,hum=36.0,co=0i 1719938400",
                  "home,room=Living\\ Room temp=22.4,hum=36.0,co=0i 1719942000",
                  "home,room=Kitchen temp=22.8,hum=36.5,co=1i 1719942000",
                  "home,room=Living\\ Room temp=22.3,hum=36.1,co=0i 1719945600",
                  "home,room=Kitchen temp=22.8,hum=36.3,co=1i 1719945600",
                  "home,room=Living\\ Room temp=22.3,hum=36.1,co=1i 1719949200",
                  "home,room=Kitchen temp=22.7,hum=36.2,co=3i 1719949200",
                  "home,room=Living\\ Room temp=22.4,hum=36.0,co=4i 1719952800",
                  "home,room=Kitchen temp=22.4,hum=36.0,co=7i 1719952800",
                  "home,room=Living\\ Room temp=22.6,hum=35.9,co=5i 1719956400",
                  "home,room=Kitchen temp=22.7,hum=36.0,co=9i 1719956400",
                  "home,room=Living\\ Room temp=22.8,hum=36.2,co=9i 1719960000",
                  "home,room=Kitchen temp=23.3,hum=36.9,co=18i 1719960000",
                  "home,room=Living\\ Room temp=22.5,hum=36.3,co=14i 1719963600",
                  "home,room=Kitchen temp=23.1,hum=36.6,co=22i 1719963600",
                  "home,room=Living\\ Room temp=22.2,hum=36.4,co=17i 1719967200",
                  "home,room=Kitchen temp=22.7,hum=36.5,co=26i 1719967200"
                );
    
                /**
                 * Write each record separately to InfluxDB with timestamp
                 * precision in seconds.
                 * If no error occurs, print a success message.
                 * */
                for (String record : records) {
                    client.writeRecord(record, new WriteOptions(null, null,
                    WritePrecision.S));
                    System.out.printf("Data has been written successfully:
                    %s%n", record);
                }
            }
        }
    }
    

    示例代码执行以下操作

    1. 导入以下类

      • java.util.List;
      • com.influxdb.v3.client.InfluxDBClient
      • com.influxdb.v3.client.write.WriteParameters
      • com.influxdb.v3.client.write.WritePrecision
    2. 调用InfluxDBClient.getInstance()以实例化一个配置了InfluxDB凭据的客户端。

      • host:您的 InfluxDB 云无服务器区域 URL
      • database:要写入的 InfluxDB Cloud Serverless 存储桶的名称
      • token:一个token,具有对指定存储桶的写入访问权限。将其存储在密钥存储库或环境变量中,以避免暴露原始 token 字符串。
    3. 定义了一个列表,其中包含行协议字符串,每个字符串表示一条数据记录。

    4. 调用客户端的writeRecord()方法将每个记录单独写入InfluxDB。

      由于示例行协议中的时间戳以秒为单位,因此示例将WritePrecision.S枚举值作为precision参数传递,以将写入时间戳精度设置为秒。

  8. 在您的编辑器中打开App.java文件(由Maven创建),并用以下示例代码替换其内容

    // App.java
    
    package com.influxdbv3;
    
    /**
    * Execute the client functions.
    *
    */
    public class App {
    
        /**
        * @param args
        * @throws Exception
        */
        public static void main(final String[] args) throws Exception {
            // Write data to InfluxDB v3.
            Write.writeLineProtocol();
        }
    }
    
    • App类和Write类属于同一个com.influxdbv3包(您的项目groupId)。
    • App定义了一个main()函数,该函数调用Write.writeLineProtocol()
  9. 在您的终端或编辑器中使用Maven安装依赖关系并编译项目代码——例如

    mvn compile
    
  10. 在您的终端或编辑器中执行App.main()以写入InfluxDB——例如,使用Maven

    mvn exec:java -Dexec.mainClass="com.influxdbv3.App"
    

如果成功,则输出成功消息;否则,错误详细信息及失败消息。

查看写入的数据

恭喜!您已将数据写入InfluxDB。现在数据已存储在InfluxDB中,让我们查询它。


这个页面有用吗?

感谢您的反馈!


Flux 的未来

Flux 正在进入维护模式。您可以在不更改代码的情况下继续使用它。

阅读更多

InfluxDB v3 增强功能和 InfluxDB 集群版现已普遍可用

新功能,包括更快的查询性能和管理工具,推进了 InfluxDB v3 产品线。InfluxDB 集群版现已普遍可用。

InfluxDB v3 性能和功能

InfluxDB v3 产品线在查询性能方面取得了显著提升,并提供了新的管理工具。这些增强包括用于监控 InfluxDB 集群健康情况的操作仪表板、InfluxDB 云专用中的单点登录(SSO)支持和针对令牌和数据库的新管理 API。

了解新的 v3 增强功能


InfluxDB 集群版普遍可用

InfluxDB 集群版现已普遍可用,为您在自管理堆栈中提供 InfluxDB v3 的功能。

与我们讨论 InfluxDB 集群版

InfluxDB 云无服务器