文档文档

向 InfluxDB 3 Core 写入数据

InfluxDB 3 Core 专为高写入吞吐量而设计,并使用一种高效、人类可读的写入语法,称为行协议。InfluxDB 是一个“写入时模式”数据库,这意味着您可以开始写入数据,InfluxDB 会自动创建逻辑数据库、表及其模式,无需任何干预。一旦 InfluxDB 创建了模式,它会在接受新数据之前根据模式验证将来的写入请求。当您的模式发生变化时,还可以稍后添加新的标签和字段。

InfluxDB 3 Core 针对近期数据进行了优化

InfluxDB 3 Core 针对近期数据进行了优化,但可接受任何时间段的写入。该系统将数据持久化到 Parquet 文件中,以便使用 InfluxDB 3 Enterprise 或第三方工具进行历史分析。为了进行扩展的历史查询和优化的数据组织,请考虑使用 InfluxDB 3 Enterprise

行协议

InfluxDB 3 Core 接受 行协议语法的数据。行协议包含以下元素

* 必需
  • * 表 (table):一个字符串,用于标识存储数据的

  • 标签集 (tag set):逗号分隔的键值对列表,每个键值对代表一个标签。标签键和值是未加引号的字符串。空格、逗号和等号字符必须进行转义。

  • * 字段集 (field set):逗号分隔的键值对列表,每个键值对代表一个字段。字段键是未加引号的字符串。空格和逗号必须进行转义。字段值可以是以下类型之一

  • 时间戳 (timestamp):与数据关联的 Unix 时间戳。InfluxDB 支持纳秒精度。

InfluxDB 行协议元素是如何解析的?

有关模式设计建议,请参阅 InfluxDB 模式设计建议


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


构建行协议

在基本了解行协议后,您现在可以构建行协议并将数据写入 InfluxDB 3 Core。考虑一个用例,您在家中收集传感器数据。每个传感器收集温度、湿度和一氧化碳读数。要收集此数据,请使用以下模式

  • 表 (table)home
    • 标签 (tags)
      • room:Living Room 或 Kitchen
    • 字段 (fields)
      • temp:温度(摄氏度,浮点数)
      • hum:湿度百分比(浮点数)
      • co:一氧化碳(百万分之几,整数)
    • 时间戳 (timestamp):以精度为单位的 Unix 时间戳

以下行协议样本代表从 2022-01-01T08:00:00Z (UTC)2022-01-01T20:00:00Z (UTC) 开始每小时收集的数据。这些时间戳是动态的,可以通过单击右下角的 图标进行更新。

家庭传感器数据行协议
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

使用 CLI 写入数据

要快速开始写入数据,请使用 influxdb3 write 命令。包括以下内容

  • --database 选项,用于标识目标数据库
  • --token 选项,用于指定要使用的令牌(除非已设置 INFLUXDB3_AUTH_TOKEN 环境变量)
  • 通过标准输入 (stdin) 传递引用的行协议数据
influxdb3 write \
  --database 
DATABASE_NAME
\
--token
AUTH_TOKEN
\
--precision s \ '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'

在代码示例中,将以下占位符替换为您自己的值

从文件写入数据

要写入已保存到文件的行协议,请传递 --file 选项——例如,将示例行协议保存到名为 sensor_data 的文件中,然后输入以下命令

influxdb3 write \
  --database 
DATABASE_NAME
\
--token
AUTH_TOKEN
\
--precision s \ --accept-partial \ --file path/to/sensor_data

将以下占位符替换为您自己的值

其他写入数据工具

有许多方法可以将数据写入 InfluxDB 3 Core 数据库,包括

  • InfluxDB HTTP API:推荐用于批量和高吞吐量写入工作负载。
  • InfluxDB 客户端库:客户端库可与您的代码集成,将数据构建为时间序列点,并将数据作为行协议写入您的 InfluxDB 3 Core 数据库。
  • Telegraf:一个数据收集代理,拥有超过 300 个用于收集、处理和写入数据的插件。

有关更多信息,请参阅 写入数据到 InfluxDB 3 Core


此页面是否有帮助?

感谢您的反馈!


InfluxDB 3.8 新特性

InfluxDB 3.8 和 InfluxDB 3 Explorer 1.6 的主要增强功能。

查看博客文章

InfluxDB 3.8 现已适用于 Core 和 Enterprise 版本,同时发布了 InfluxDB 3 Explorer UI 的 1.6 版本。本次发布着重于操作成熟度,以及如何更轻松地部署、管理和可靠地运行 InfluxDB。

更多信息,请查看

InfluxDB Docker 的 latest 标签将指向 InfluxDB 3 Core

在 **2026 年 2 月 3 日**,InfluxDB Docker 镜像的 latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。

如果使用 Docker 来安装和运行 InfluxDB,latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。例如,如果使用 Docker 运行 InfluxDB v2,请将 latest 版本标签替换为 Docker pull 命令中的特定版本标签 — 例如

docker pull influxdb:2