thingsboard 实体及数据存储研究

1. 概述

本文主要研究 thingsboard 各种实体在关系型数据库 postgres 中的存储。

2. 安装与配置使用 Postgresql 数据库

从源码编译安装参考 : https://thingsboard.io/docs/user-guide/contribution/how-to-contribute/

编译运行后,需创建 thingsboard 数据库:

psql -U postgres -d postgres -h 127.0.0.1 -W
CREATE DATABASE thingsboard;
\q

Postgresql 的基本使用,见 http://www.atjiang.com/postgresql-beginner-11-tasks/

Thingsboard v2.4 中,默认使用的数据库用户名和密码都是 postgres, 见 /application/src/main/resources/thingsboard.yml:

datasource:
    driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.postgresql.Driver}"
    url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://localhost:5432/thingsboard}"
    username: "${SPRING_DATASOURCE_USERNAME:postgres}"
    password: "${SPRING_DATASOURCE_PASSWORD:postgres}"

创建 schema 并导入测试数据:

cd ~/workspace/thingsboard/application/target/bin/install
chmod +x install_dev_db.sh
./install_dev_db.sh

登录测试

http://127.0.0.1:8080/

用户名 tenant@thingsboard.org
密码 tenant

实体

Tenants 租户

是一个独立的商业实体:比如个人或组织,可以拥有若产生多个设备或资产。一个租户可有多个租户管理员用户及多个客户。

可将它理解为代理商,中间商,如中国移动是一个 tenant, 承包了某地区的所有项目,信息保存在 tenant 表中。

Customers 客户

也是一个独立的商业实体:如何个人或组织,客户从租户那购买设备和资产。一个客户中可有多个用户。

可将它理解为甲方客户,如某单位或企业,从租户中国移动那购买服务。

信息保存在 customer 表中, 通过 tenant_id 关联相应的 tenant。

Users 用户

用户登录系统,查看信息并管理实体的账号。系统中创建的用户,保存于 tb_user 中。

通过 customer_idtenant_id 关联相应的租户和客户,用户权限由 authority 字段指定,值见:

// thingsboard/common/data/src/main/java/org/thingsboard/server/common/data/security/Authority.java

public enum Authority {
   
    
    SYS_ADMIN(0),
    TENANT_ADMIN(1),
    CUSTOMER_USER(2),
    REFRESH_TOKEN(10);
}

customer_id 和 tenant_id 有一个默认的值 1b21dd2138140008080808080808080,该值应该为系统中的一个默认 Tenant 和 Customer 值。

例如系统管理员账户 “sysadmin@thingsboard.org” 对应的 customer_id 和 tenant_id 即为该值。

Devices 设备

设备可上传遥测数据或执行 RPC 命令。

保存于 device 表中,通过 customer_idtenant_id 关联相应的租户和客户。设备类型由 type 字符串字段指定,默认为 default, 可自由创建新值。

新建的设备,其默认 customer_id 为 1b21dd2138140008080808080808080,该值应该为系统中的一个默认 Customer 值。

通过设备管理界面可以分配给指定客户。

设备的访问凭证信息保存在表 device_credentials 中,类型由 credentials_type 字段指定,类型值见:

// thingsboard/common/data/src/main/java/org/thingsboard/server/common/data/secur
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值