开源物联网平台ThingsBoard数据库40张数据表设计一览

开源物联网平台ThingsBoard数据库40张数据表设计一览

  • 1 ThingsBoard数据库总览
    • 1.1 数据库信息
      • 1.1.1 数据库名称
      • 1.1.3 数据库用户名及密码
      • 1.1.3 数据库表
    • 1.2 数据库表命名规范
    • 1.3 40张数据表信息
  • 2 遥测数据存放数据表
    • 2.1 分区表
    • 2.2 字段
    • 2.3 压缩
  • 3 一些字段命名问题
    • 3.1 create_time字段必有

1 ThingsBoard数据库总览

ThingsBoard软件版本为 3.3.2
ThingsBoard使用的数据库类型为关系型数据库PostgreSQL

1.1 数据库信息

1.1.1 数据库名称

数据库名称为thingsboard,数据库名一般和应用名称保持一致。

1.1.3 数据库用户名及密码

默认的用户名和密码均为postgres

1.1.3 数据库表

数据库包含共计40张数据表。

1.2 数据库表命名规范

  1. 首先确定单个单词能否涵盖业务的全部功能;
  2. 其次按照“业务名称_表的作用”进行细分;
  3. 最后按照“业务名称_表的作用_状态信息”继续细分;

1.3 40张数据表信息

按照功能单元分类如下表所示。

序号 业务名称 功能 表名 描述
1 规则引擎 规则链 rule_chain 存放规则链信息,如规则链的模式
2 规则引擎 规则链节点 rule_node 存放规则节点信息,如节点的配置信息
3 规则引擎 规则链节点状态 rule_node_state 存放规则节点的状态数据
4 设备实体 设备信息 device 存放设备基本信息,如设备配置文件、固件及软件版本
5 设备实体 设备鉴权 device_credentials 存放设备鉴权信息,如鉴权类型、鉴权号码
6 设备实体 设备配置 device_profile 存放设备配置文件数据,如设备的图标、配置详情信息
7 资产实体 资产信息 asset 存放资产信息数据,如资产的类型、资产的描述
8 租户实体 租户信息 tenant 存放租户数据,如租户的地址、电话信息
9 租户实体 租户配置 tenant_profile 存放租户数据,如租户的地址、电话信息,租户的租用能力
10 客户实体 客户信息 customer 存放客户数据,如客户的详细地址、所归属的租户
11 用户实体 用户信息 tb_user 存放软件用户信息,如用户所属的客户及租户
12 用户实体 用户鉴权 user_credentials 存放软件用户鉴权信息,如用户的用户名、密码,重置令牌
13 告警实体 告警信息 alarm 存放软件告警信息,如告警信息的程度、处理状态
14 OTA实体 空中下载升级包信息 ota_package 存放设备升级软件包的信息,如软件的版本、文件名、校验码
15 仪表盘实体 用户信息 dashboard 存放软件看板信息,如看板的配置、分配客户的信息
16 属性实体 属性信息 attribute_kv 存放属性键值对信息,如属性的类型、属性值
17 遥测实体 遥测信息 tb_kv 存放遥测键值对数据,如遥测的键及其值
18 遥测实体 最新遥测信息 tb_kv_latest 存放最新的遥测键值对数据,如遥测的键及其值
19 遥测实体 遥测字典 tb_kv_dictiontry 存放遥测键的字典数据
20 组件 组件描述 component_descriptor 存放规则引擎组件的描述信息,如配置数据
21 部件 部件类型 widget_type 存放部件信息
22 部件 部件库 widget_bundle 存放部件库信息,相当于将部件归类
23 审计 审计日志信息 aduit_log 存放审计日志数据,如用户使用本软件的ip地址、浏览器信息、操作系统信息
24 OAuth2 授权服务注册 oauth2_registration 存放授权注册信息,如访问令牌URI、授权用户信息
25 OAuth2 授权服务注册 oauth2_client_registration_template 存放客户端注册信息模板,如GitHub的授权信息所需配置项、Apple的授权信息所需的配置项
26 OAuth2 授权服务注册 oauth2_params 存放授权用户信息,如租户信息
27 OAuth2 移动端授权 oauth2_mobile 存放移动端授权登录信息,如应用包名、应用令牌
28 OAuth2 授权域信息 oauth2_domain 存放授权域相关信息,如域名、域访问协议
29 OAuth2 授权域信息 oauth2_client_registration_info 存放授权客户端注册相关信息,如域名、域访问协议
30 OAuth2 授权域信息 oauth2_client_registration 存放授权域相关信息,如域名、域协议
31 边缘计算 边缘计算 edge 存放边缘计算服务信息
32 边缘计算 边缘计算事件 edge_event 存放边缘计算发生的事件数据,如事件信息
33 实体视图 实体视图 entity_view 类似数据库的视图功能,存放视图信息,如分配视图的起止时间
34 资源 资源 resource 存放资源数据信息,如秘钥文件信息
35 rpc 远程过程调用 rpc 存放远程过程调用数据,如请求数据、响应数据
36 关系实体 关系数据 relation 存放实体间的关系,如资产与资产的包含类型、起始实体类型数据
37 事件实体 事件 event 存放各实体类事件的信息,如事件类型、事件数据
38 设置 管理员设置 admin_setting 存放设置信息,如基本设置、邮件设置
39 接口 接口状态 api_usage_state 存放接口使用信息,如各类展示卡片激活状态
40 版本 版本设置 tb_schema_settings 存放软件版本信息

2 遥测数据存放数据表

2.1 分区表

遥测数据存放表名为ts_kv,按照时间(月份)进行分区表设计,如下图所示。
开源物联网平台ThingsBoard数据库40张数据表设计一览

2.2 字段

遥测的数据类型有五种,包括:

public enum DataType {

    STRING, LONG, BOOLEAN, DOUBLE, JSON;

}

最新遥测数据保存表名为ts_kv_latest,当表达到预定行数值后将数据复制到表ts_kv中。
开源物联网平台ThingsBoard数据库40张数据表设计一览

2.3 压缩

键名字段key是数值,在表ts_kv_dictionary有其对应关系,当遥测数据中含有相应的键名时,在ts_kv使用数字进行对应存储,可以节省磁盘空间。
开源物联网平台ThingsBoard数据库40张数据表设计一览

3 一些字段命名问题

3.1 create_time字段必有

大致看一下这40张表的字段,create_time字段的出现的频次极高,因为数据的创建时间对后期运维有很大参考价值。
开源物联网平台ThingsBoard数据库40张数据表设计一览

本文章来源于互联网,如有侵权,请联系删除!原文地址:开源物联网平台ThingsBoard数据库40张数据表设计一览

相关推荐: 物联网平台建设调研报告

物联网平台建设调研报告 一、引言 物联网的发展自2018年后逐渐进入爆发期,包括芯片、传感器、模组、网络、平台、终端设备、系统集成、应用服务等在内的整个产业链在不断扩大。其中物联网平台作为物联网架构中承上启下的部分,是物联网产业链的枢纽。下图简易说明物联网应用…