You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ThingsBoard中如何将时序数据存储至InfluxDB或TDengine

ThingsBoard时序数据落地InfluxDB/TDengine配置指南

前置说明:以下操作基于ThingsBoard 3.4+版本验证,低版本可能存在插件兼容问题,建议先升级到稳定版再操作;提前准备好可用的InfluxDB(2.x推荐,1.x兼容)、TDengine(3.x推荐)服务,确保ThingsBoard所在服务器能正常连通数据库服务端口。

一、InfluxDB 存储配置步骤

    1. InfluxDB侧预配置
    • 2.x版本:登录InfluxDB控制台,创建专属Organization、Bucket,根据业务存储周期设置Bucket保留策略,生成拥有该Bucket读写权限的API Token,记录4个核心参数:InfluxDB访问地址、Organization名称/ID、Bucket名称、API Token
    • 1.x版本:登录InfluxDB创建专用数据库,设置保留策略,创建拥有该库读写权限的账号,记录访问地址、库名、用户名、密码
    1. ThingsBoard规则链配置
    • 用系统租户管理员账号登录ThingsBoard Web端,进入规则引擎 > 规则链页面,找到负责处理遥测上报的规则链(默认是Root Rule Chain,自定义业务链则进入对应链)
    • 定位到原有默认的Save Timeseries节点:如果需要同时存ThingsBoard内置数据库和InfluxDB就保留该节点,全量切到InfluxDB则删除该节点或断开上游连线
    • 从左侧节点选择栏的外部存储分类中,找到对应版本的InfluxDB节点(2.x选InfluxDB v2.0,1.x选InfluxDB)拖入画布,双击打开配置页:
      • 自定义节点名称,比如写入InfluxDB业务库
      • 填入之前记录的数据库连接参数
      • 批量写入参数建议调优:单批写入条数设1000,最大攒批等待时间设1000ms,失败重试次数设3,避免单条写入导致性能瓶颈
      • 标签映射默认会将设备ID、设备名称、遥测键名作为InfluxDB的Tag,有自定义业务标签需求可在此处添加映射规则
    • 将上游Message Type Switch节点输出的Post telemetry(遥测上报)、Post attributes(属性上报,按需选择)消息连线到新建的InfluxDB节点,保存规则链
    1. 有效性校验
    • 找一台已接入的测试设备上报一条遥测数据,等待2~3秒后进入InfluxDB Data Explorer查询对应Bucket的数据,能查到匹配的字段、值、时间戳即配置生效

二、TDengine 存储配置步骤

注意:ThingsBoard 3.3.1及以上版本原生内置TDengine规则节点,更低版本需手动安装TDengine官方提供的规则节点插件,将jar包放入ThingsBoard的extensions目录后重启服务加载。

    1. TDengine侧预配置
    • 登录TDengine的taos shell,创建ThingsBoard专用数据库,根据业务需求设置数据保留时长、块大小等参数,示例SQL:
      -- 建库,示例为保留365天数据,每10天一个数据文件
      CREATE DATABASE thingsboard KEEP 365 DAYS 10 BLOCKS 4;
      -- 创建专用读写账号
      CREATE USER tbuser PASS '自定义强密码';
      GRANT ALL ON thingsboard TO tbuser;
      
    • 记录JDBC连接串:原生TCP连接格式为jdbc:TAOS://TDengine服务IP:6030/thingsboard?charset=UTF-8&locale=en_US.UTF-8,RESTful连接格式为jdbc:TAOS-RS://TDengine服务IP:6041/thingsboard,根据实际部署的连接方式选择
    1. ThingsBoard规则链配置
    • 进入对应处理遥测数据的规则链,和InfluxDB配置逻辑一致,调整原有内置时序存储节点的连线后,从外部存储分类拖入TDengine节点,双击打开配置页:
      • 填入提前准备的JDBC连接串、用户名、密码
      • 表生成规则默认采用超级表+子表模式,按设备ID+遥测键名自动建表,无需提前手动创建表结构,插件会自动识别字段类型
      • 批量写入参数建议设单批500条,最大攒批等待时间500ms,可根据服务器性能、上报QPS往上调整
      • 标签映射默认将设备ID、设备名称、设备类型作为TDengine的标签列,有自定义标签需求可在此添加映射规则
    • 将上游遥测、属性上报的消息连线到TDengine节点,保存规则链
    1. 有效性校验
    • 测试设备上报数据后,进入taos shell执行USE thingsboard; SHOW STABLES;,能看到自动创建的超级表,查询对应子表最新数据能匹配上报值即配置生效

三、生产环境注意事项

  • 多写需求:如果需要同时将数据写入多个存储(比如内置库+InfluxDB+TDengine),只要将上游消息同时连线到多个存储节点即可,规则引擎会并行执行写入动作,节点间互不影响
  • 异常兜底:建议给所有时序存储节点添加失败连线,将写入失败的消息转发到死信队列或告警节点,避免数据库连接闪断、参数错误导致数据静默丢失
  • 网络校验:配置前先在ThingsBoard所在服务器用telnet、curl命令测试数据库端口连通性,Docker部署时不要用127.0.0.1作为数据库地址,避免容器网络隔离导致连不上数据库
  • 时间同步:ThingsBoard服务、时序数据库服务、接入设备必须配置NTP时间同步,否则会出现时间戳错位、数据查询不到、写入报错的问题
  • 性能优化:禁止关闭批量写入配置,InfluxDB、TDengine的批量写入性能比单条写入高10~100倍,可根据实际业务压测结果调整攒批参数

内容的提问来源于stack exchange,提问作者huanglg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 22:42:23