Thingsboard(2.4 postgresql版)数据库表结构说明
本文描述的表结构是根据thingsboard2.4(postgresql版)数据库中整理出来的,不一定完整,后续有新的发现再补充文档。
一、数据库E-R关系
Thingsboard2.4社区版共22个表,主要包括实体信息表、关系信息表、字典表和系统配置表。

二、数据库表结构
1、admin_settings 系统设置表
存储系统设置信息,目前的设置信息包括系统的访问URL地址,以及邮件发送相关配置信息。

Key为配置项,如general、mail,json_value是一个json字符串,是配置项对应的一个或多个键值对信息组成一个json字符串。
2、alarm 警告信息表Key为配置项,如general、mail,json_value是一个json字符串,是配置项对应的一个或多个键值对信息组成一个json字符串。

3、asset资产信息表
可能与其他设备和资产相关的抽象物联网实体。例如工厂,油田,车辆。

4、attribute_kv属性信息表
存储实体信息的属性信息,属性信息可以是静态和动态的,属性信息以键值对方式存储。

5、audit_log审计日志
存储客户、用户、资产、设备、实体视图、仪表盘和规则链等实体信息的操作日志。

action_data字段按照json字符串的格式存储操作对象的信息。例如action_type字段是ADDED\UPDATED时,action_data字段的值是对象的键值对信息。
6、component_descriptor数据处理规则组件表
这是一个字典表,存储规则链库中具体各个数据处理规则组件信息。每个规则组件都有一个对应的java类,存储在clazz字段中。configuration_descriptor以json格式存储规则组件的说明、接口、js文件等相关配置信息。

7、customer客户信息表
存储客户信息。客户也是一个独立的业务实体:购买或使用租户设备和/或资产的个人或组织;客户可能拥有多个用户和数百万设备和/或资产。客户信息是通过租户(tenant_id)进行隔离的,不同租户有不同的客户。

8、dashboard仪表盘信息表
存储用于展示设备属性和遥测数据的仪表板信息。可视化您的物联网数据以及通过用户界面控制特定设备的能力。

configuration字段以json字符串存储仪表板的配置信息,仪表板中各个显示组件的配置信息,配置项及其信息比较多。
9、device设备信息表
存储设备基本信息。这里的设备是可能产生遥测数据和处理RPC命令的基本物联网实体。例如传感器,致动器,开关。

10、device_credentials设备凭据表
存储设备的凭证信息,每一个设备都需要有相应的凭证。
设备凭证是物联网设备和物联网平台连通的重要依据,是物联网平台对外访问接口的安全访问控制信息。

11、entity_view实体视图表
实体视图类似于SQL数据库视图,它限制了基础表暴露给外部世界的程度,实体视图限制了设备或资产遥测和属性暴露给客户的程度。作为租户管理员,您可以为每个设备或资产创建多个实体视图,并将其分配给不同的客户。

12、event事件表
存储客户、资产、设备、实体视图、规则链和规则节点等实体对象处理事件的信息。

13、relation 实体关系记录表
存储设备、资产、实体视图、租户、客户、仪表板、规则链和规则节点间的连接关系,其中规则节点和规则节点之间的连接关系较为复杂。

relation_type字段的值主要包括如下内容:
(1)在规则链中描述规则节点之间的链接关系(relation_type)包括如下几种类型(不同节点关系会有所不同):
- Post attributes
- Post telemetry
- RPC Request from
- Device
- RPC Request to Device
- Activity Event
- Inactivity Event
- Connect Event
- Disconnect Event
- Entity Created
- Entity Updated
- Entiry Deleted
- Entity Assigned
- Entity Unassigned
- Attributes Updated
- Attributes Deleted
- Alarm Acknowledged
- Alarm Cleared
- Other
- Failure
- True
- False
(2)其它实体间的关系类型还有:Contains
14、rule_chain 规则链信息表
存储规则链定义信息。

15、rule_node 规则节点信息表
存储规则链中各个规则节点的信息。

16、tb_user 用户
存储系统用户信息,包括系统管理员、租户管理员和客户的用户。用户是系统的使用者,系统管理员是内置的,系统管理员创建租户及其管理员,租户创建客户及其用户。

additional_info是一个json字符串,包含下面的信息:
(1)用户描述信息;
(2)默认面板(仪表板需要先授权给该客户),系统会存储面板的ID;
(3)是否始终全屏。
17、tenant租户信息表
存储租户基本信息,所有的实体信息表中都有租户ID,都是按照租户隔离了数据。

18、ts_kv时间序列key-value数据集
存储设备的历史遥测数据。

19、ts_kv_latest最新的key-value数据
存储设备最新的遥测数据。

20、user_credentials用户凭据
存储用户的登录凭证信息。

21、widget_type仪表板显示组件信息表
存储仪表板显示组件的详细信息。通过alias字段和widgets_bundle表的alias字段关联,区别不同的分类。Descriptor中通过json字符串的方式,详细描述了显示组件的信息。

22、widgets_bundle仪表板显示组件分类表
存储仪表板显示组件的分类信息。

相关文章:
Thingsboard(2.4 postgresql版)数据库表结构说明
本文描述的表结构是根据thingsboard2.4(postgresql版)数据库中整理出来的,不一定完整,后续有新的发现再补充文档。 一、数据库E-R关系 Thingsboard2.4社区版共22个表,主要包括实体信息表、关系信息表、字典表和系统配…...
IDS反病毒与APT的具体介绍
文章目录一,IDS1. 什么是IDS?2. IDS和防火墙有什么不同?3. IDS工作原理?4. IDS的主要检测方法有哪些详细说明?5. IDS的部署方式有哪些?6. IDS的签名是什么意思?签名过滤器有什么作用?…...
while do..while验证用户名和密码-课后程序(JavaScript前端开发案例教程-黑马程序员编著-第2章-课后作业)
【案例2-8】while do..while验证用户名和密码 一、案例描述 考核知识点 while、do…while循环语句 练习目标 掌握while语句。do…while循环语句。 需求分析 在网站上登录时会用到表单,让用户属于用户名和密码,输入正确才可以进入,本案例将…...
tmux常用操作指令
创建会话tmux new -s 会话名 恢复会话tmux at -t 会话名 tmux attach -t 会话名 杀死会话tmux kill-session -t 编号 tmux kill-session -t 会话名 查询会话tmux ls tmux list-session 划分窗格划分上下两个窗格: tmux split-window 划分左右两个窗格:…...
【Linux】线程安全
线程安全:在多线程运行的时候,不论线程的调度顺序怎样,最终的结果都是 一样的、正确的,这个线程就是安全的。 保证线程安全的要求: 1. 对线程同步,保证同一时刻只有一个线程访问临界资源。 2.在多线程中使用…...
Redis-mysql 缓存实战
本文基于Springboot,mybatis plus,mysql,redis, Jedis模拟redis缓存实现 目录 1. 添加所需maven依赖 2. 设置数据库及数据表 3. 构建实体类 4. 构建工具类实现 redis 数据库连接池,redis 的读取,写入功…...
蓝桥杯:通电
蓝桥杯: 通电https://www.lanqiao.cn/problems/162/learning/ 目录 题目描述 输入描述 输出描述 输入输出样例 输入 输出 题目分析(最小生成树): AC代码(Java) 题目描述 2015 年,全中国实现了户户通电。作为一名电力建设者࿰…...
一文搞懂 Kubernetes 的 Limits 和 Requests
当在Kubernetes中使用容器时,重要的是要知道所涉及的资源是什么以及如何需要它们。有些进程比其他进程需要更多的CPU或内存。有些是关键的,不应该被饿死。知道了这一点,我们应该正确配置我们的容器和Pod,以获得两者的最佳效果。在…...
【C++】手撕红黑树
文章目录前言一、红黑树的概念二、红黑树的节点结构三、红黑树的插入四、红黑树的调整1、叔叔存在且为红2、叔叔不存在或存在且为黑3、插入完整代码4、总结五、红黑树的验证六、红黑树的删除七、红黑树与 AVL 树的比较八、红黑树的代码实现前言 在网络上流传着这样一张图片&am…...
Java中的CAS实现原理
文章目录一、什么是CAS?二、JAVA中如何实现CAS操作三、CAS在JUC中的运用四、ABA问题一、什么是CAS? 在计算机科学中,比较和交换(Conmpare And Swap)是用于实现多线程同步的原子指令。 它将内存位置的内容与给定值进行…...
什么是华为云对象存储OBS?它有什么优势?
华为对象存储OBS(Object Storage Service)是一种高可用、高可靠、高性能的云存储服务,能够为企业和个人用户提供强大的数据存储和管理功能。本文将对华为对象存储OBS的特点、优势和未来发展进行详细介绍。 一、华为对象存储OBS的特点 1.对象…...
你知道照片怎么变清晰吗?增强照片清晰度的方法
相信很多小伙伴都会有这种的经历,去游玩时高高兴兴的拍照留念,结果拍出来的照片不是很尽人意。或者是画面还没聚焦好,就按下快门,导致拍摄出来的照片变模糊了。很多小伙伴遇到这种情况都很烦恼,照片丢了可惜࿰…...
NOIP模拟赛 轰炸(bomb)
题目描述 有nnn座城市,城市之间建立了mmm条有向的地下通道。 你需要发起若干轮轰炸,每轮可以轰炸任意多的城市。但在每次轰炸城市中,不能同时存在两个城市i,ji,ji,j满足可以通过地下通道从城市iii到达城市jjj。你需要求出最少需要多少轮可以…...
Linux系统之安装PHP环境
Linux系统之安装PHP环境 一、PHP介绍1.PHP简介2.PHP优势3.php7版本特点二、本地环境介绍1.环境规划2.检查操作系统版本3.检查当前yum仓库三、安装PHP5.4版本1.查看可安装php版本2.使用yum安装php3.安装httpd服务4.关闭selinux和设置防火墙5.编辑index.php测试文件6.测试php环境…...
MySQL8的安装教程
MySQL8的安装教程 1.安装包的下载 如果不想去官网下载的话可以去百度网盘进行下载。 MySQL :: Download MySQL Community Server mysql-8.0.28-winx64.zip_免费高速下载|百度网盘-分享无限制 (baidu.com) 提取码:0001 2.解压 3.创建一个my.ini的文件 最好是创建…...
日入500+的程序员都在用的“接私活”平台
网上总说程序员的薪资很高,这我可就不同意了: 程序员的薪资哪里是很高,而是非常高!而会接私活的程序员更是能拿到更高的收入!作为一个程序员,这些接私活的网站一定要收藏起来,让你在“八小时外…...
MySQL表设计思路(一对多、多对多...)
要开始单独负责需求了,捋一捋表设计的思路。 文章目录一、MySQL中的数据类型二、一对一的关系设计二、一对多的关系设计三、多对多的关系设计四、经验总结一、MySQL中的数据类型 字符串类型 varchar:即variable char ,可边长度的字符串&#…...
内存对齐:C/C++编程中的重要性和技巧
C/C中的内存对齐前言基本概念 什么是内存对齐?内存对齐的定义内存对齐的作用数据类型的大小ARM 64 位架构和 x86_64 架构下的数据类型大小ARM 32 位架构下的数据类型大小内存对齐的边界填充字节的作用内存对齐的原理结构体中的内存对齐结构体的定义和使用结构体中成…...
C++ Primer第五版_第七章习题答案(41~50)
文章目录练习7.411、头文件2、源文件3、主函数练习7.42练习7.43练习7.44练习7.45练习7.46练习7.47练习7.48练习7.49练习7.50练习7.41 使用委托构造函数重新编写你的Sales_data 类,给每个构造函数体添加一条语句,令其一旦执行就打印一条信息。用各种可能的…...
python玄阶斗技--NumPy入门
目录 一.NumPy介绍 二.创建数组 1.一维数组创建 2.二维数组创建 3.zeros函数 4.ones函数 5.empty函数 6.arange函数 三.NumPy的数学操作 1.基本运算 2.矩阵运算 3.ndarray类的方法 四.数组堆叠 五.数组分隔 一.NumPy介绍 在这里对NumPy的介绍我不想扯太多…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
