2. ThingsBoard 核心实体:概念与层级

ThingsBoard 平台采用多租户架构,其数据模型围绕五个核心实体构建:租户 (Tenant)、客户 (Customer)、用户 (User)、资产 (Asset) 和 设备 (Device)。理解这些实体的定义及其层级关系,是进行实体关系建模与数据链路设计的基础。

2.1 核心实体定义

下表从业务视角和技术视角对五个核心实体进行定义:

实体 业务含义 技术角色 关键属性
租户 (Tenant) 独立的组织或企业,拥有完整的 IoT 业务域 顶级隔离单元,管理所有下级实体 租户 ID、名称、地区、配置
客户 (Customer) 租户的下级业务单元,如部门、项目或终端客户 资产与设备的逻辑归属方 客户 ID、租户 ID、邮箱、地址
用户 (User) 平台的操作者,可以是租户管理员或客户成员 认证与授权主体,拥有角色和权限 用户 ID、邮箱、角色、所属实体
资产 (Asset) 物理世界中的有价值对象,如建筑、车辆、生产线 数据聚合与业务逻辑的载体 资产 ID、类型、标签、属性
设备 (Device) 连接网络的物理传感器或执行器 数据采集与指令下发的最小单元 设备 ID、凭证、遥测、属性
关键区分:资产 (Asset) 是静态业务对象,通常不直接产生数据流;设备 (Device) 是动态数据源,负责上报遥测和接收指令。资产可以包含多个设备,但设备只能属于一个资产。

2.2 实体层级结构

ThingsBoard 的实体层级遵循严格的树形结构,从顶层租户向下逐级展开。层级关系决定了数据可见性、权限范围和实体管理方式。

层级规则:
  • 一个 租户 拥有多个 客户、多个 用户、多个 资产 和多个 设备。
  • 一个 客户 属于一个 租户,并拥有该租户下的部分 资产 和 设备。
  • 一个 用户 属于一个 租户 或一个 客户,不能同时属于两者。
  • 资产 和 设备 可以属于 租户 或 客户,通过关系链实现归属。
ThingsBoard 核心实体层级结构 租户 (Tenant) 客户 (Customer) 用户 (User) 资产 (Asset) 设备 (Device) 客户资产 客户设备 资产下设备 资产下设备 层级说明: 租户是顶级容器;客户是租户下的业务单元;用户可属于租户或客户;资产和设备可属于租户或客户,且资产可包含多个设备。

2.3 实体关系矩阵

实体之间的关联关系通过 ThingsBoard 的关系引擎 (Relation Engine) 管理。以下是核心实体间的标准关系矩阵:

源实体 目标实体 关系类型 关系方向 典型场景
租户 客户 Contains 1:N 租户管理多个客户项目
租户 用户 Contains 1:N 租户管理员、运维人员
客户 用户 Contains 1:N 客户方操作员、查看者
客户 资产 Owns 1:N 客户拥有的建筑、车辆
客户 设备 Owns 1:N 客户购买的传感器
资产 设备 Contains 1:N 建筑内的温湿度传感器
资产 资产 Contains 1:N 工厂包含车间,车间包含产线
设备 设备 Connects 1:1 网关设备连接子设备
设计注意:资产与设备的关系是非强制的。设备可以独立存在而不属于任何资产,资产也可以没有关联设备。但在实际 IoT 项目中,建议为每个设备指定所属资产,以形成完整的数据链路。

2.4 实体标识与数据隔离

每个实体在 ThingsBoard 中都有一个全局唯一的 UUID 作为主键。数据隔离通过实体所属的租户 ID 实现:

  • 租户级隔离:不同租户的数据完全隔离,无法互相访问。
  • 客户级隔离:客户只能看到自己拥有的资产和设备,以及被授权的用户。
  • 用户级权限:用户通过角色 (Role) 和权限 (Permission) 控制对资产和设备的操作范围。
实体数据隔离与访问控制 租户 A 客户 A1 客户 A2 资产 A1-1 设备 A1-1-1 资产 A2-1 设备 A2-1-1 用户 A1-1 租户 B 客户 B1 资产 B1-1 设备 B1-1-1 用户 B1-1 隔离 租户间数据完全隔离;客户间数据通过关系隔离;用户只能访问其所属租户/客户下的资产和设备

2.5 实体创建与生命周期

在 ThingsBoard 中,实体的创建遵循自上而下的顺序:

  1. 创建租户:由系统管理员在租户管理页面创建,或通过 REST API 调用。
  2. 创建客户:租户管理员在客户管理页面创建,指定所属租户。
  3. 创建用户:租户管理员或客户管理员创建,分配角色和权限。
  4. 创建设备:租户或客户管理员创建设备,生成访问凭证(Access Token、X.509 证书等)。
  5. 创建资产:租户或客户管理员创建资产,并建立与设备的关联关系。
最佳实践:
  • 先定义资产结构(如工厂 → 车间 → 产线),再创建设备并关联到对应资产。
  • 使用资产类型 (Asset Type) 和设备类型 (Device Type) 对实体进行分类,便于后续规则链和仪表板设计。
  • 为每个设备分配唯一的凭证,避免跨租户或跨客户的凭证泄露。

2.6 实体关系在数据链路中的作用

实体关系是构建数据链路的核心。在 ThingsBoard 中,数据从设备产生,经过规则链处理,最终关联到资产和客户:

  • 设备 → 遥测数据:设备上报的遥测数据直接存储在设备名下。
  • 设备 → 资产:通过关系,设备数据可以聚合到资产层面,实现按资产维度的数据查看。
  • 资产 → 客户:客户通过拥有的资产,间接查看其下所有设备的数据。
  • 客户 → 租户:租户可以查看所有客户的数据,但客户只能查看自己的数据。

这种层级关系使得 ThingsBoard 能够实现多租户数据隔离和灵活的数据聚合,是构建企业级 IoT 平台的基础。