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

关于Thingsboard中ts_kv表及设备数据存储的技术问询

Thingsboard PostgreSQL 存储相关问题解答

1. ts_kv表中key的定义、生成方式及关联关系

  • 定义:key是遥测数据的系统内部唯一标识,对应设备上报的业务遥测字段名(如温度、湿度)的映射ID。
  • 生成方式:当设备首次上报某个新遥测字段时,系统自动为该字段生成唯一key(通常是哈希值或UUID),并同步存储到entity_key表;若提前在设备遥测配置中预定义字段,系统会在配置阶段生成对应key。
  • 关联关系:entity_id绑定具体设备(或其他实体),key绑定该设备的某一特定遥测字段,ts为数据上报时间戳,三者组合唯一标识一条遥测数据。

2. 查询数据对应的key(对接外部系统)

需结合entity_key表(存储key与业务字段名的映射关系)进行查询,示例SQL如下:

查询指定设备的所有遥测字段与对应key

SELECT ek.key_name AS 业务字段名, ek.key AS 数据库存储key
FROM entity_key ek
JOIN device d ON ek.entity_id = d.id
WHERE d.name = '你的设备名称';

查询指定设备的某类遥测数据及对应key

SELECT 
  d.name AS 设备名称,
  ek.key_name AS 业务字段名,
  tk.ts AS 上报时间,
  tk.v_double AS 数据值 -- 根据数据类型选择对应字段:v_string、v_bool、v_long等
FROM ts_kv tk
JOIN entity_key ek ON tk.key = ek.key
JOIN device d ON tk.entity_id = d.id
WHERE d.name = '你的设备名称' AND ek.key_name = 'temperature';

3. 是否可为不同设备创建独立数据表并对接仪表板

Thingsboard默认采用ts_kv(含分表如ts_kv_latest、按时间分片的表)作为统一遥测存储,不支持自动为单个设备创建独立数据表。
若需自定义存储,可通过规则链将数据同步到自定义表,但仪表板默认仅从系统内置遥测存储拉取数据:

  • 专业版/企业版可使用SQL查询小部件直接读取自定义表数据进行可视化;
  • 开源版需开发自定义小部件,或通过API将自定义表数据导入系统遥测存储后再可视化。
    不推荐此方案,会破坏系统时序数据管理机制,增加维护复杂度。

4. 相关主题的分析文档

可参考Thingsboard官方文档中的「数据存储」章节,里面详细说明了时序数据的存储架构、核心表结构及关联逻辑;另外官方提供的数据库Schema说明文档,会覆盖ts_kv、entity_key等表的具体定义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 18:42:28